最新在线看的黄网|伊人久久久久久久网站|日本a视频专区二|欧美A级无码毛片|有扫五av在线播放|好屌日aV在线播放|内射福利视频导航|极品少妇一区二区视频|无吗在线一区播放|性爱黄色视频不卡

深圳網(wǎng)站建設(shè)公司,網(wǎng)商在線LOGO

您的位置:首頁(yè) > 新聞

用js做鼠標(biāo)拖動(dòng)進(jìn)度條實(shí)現(xiàn)顯示多張縮略圖
新聞 2025-04-11編輯:深圳網(wǎng)站建設(shè)閱讀(標(biāo)簽: 鼠標(biāo) 拖動(dòng) 縮略圖
用js做鼠標(biāo)拖動(dòng)進(jìn)度條實(shí)現(xiàn)顯示多張縮略圖
用js做鼠標(biāo)拖動(dòng)進(jìn)度條實(shí)現(xiàn)顯示多張縮略圖
前言


隨著互聯(lián)網(wǎng)技術(shù)的不斷進(jìn)步,網(wǎng)站的用戶交互性要求也越來(lái)越高。其中,鼠標(biāo)拖動(dòng)進(jìn)度條是一種常見(jiàn)的用戶交互方式。在實(shí)現(xiàn)這種交互方式的時(shí)候,還可以結(jié)合縮略圖來(lái)豐富用戶體驗(yàn)。本文將通過(guò)使用JavaScript來(lái)實(shí)現(xiàn)鼠標(biāo)拖動(dòng)進(jìn)度條,同時(shí)顯示多張縮略圖的效果。


實(shí)現(xiàn)思路


1. 準(zhǔn)備HTML和CSS


第一,我們需要準(zhǔn)備一個(gè)HTML文件和一個(gè)CSS文件。HTML文件中包含一個(gè)拖動(dòng)條和多張縮略圖,CSS文件用來(lái)設(shè)置樣式。下面是HTML和CSS代碼的示例:


HTML代碼:


```html
```


CSS代碼:


```css#progress { width: 500px; height: 3px; background-color: #ccc; position: relative; margin: 50px auto;}


#slider { width: 20px; height: 20px; background-color: #333; position: absolute; top: -9px; left: 0; cursor: pointer; border-radius: 50%;}


#thumbnails { width: 500px; margin: 20px auto; display: flex; justify-content: center;}


#thumbnails img { width: 40px; height: 40px; margin: 0 10px; cursor: pointer; border: 2px solid #fff;}


#thumbnails img.active { border-color: #333;}```


2. 使用JavaScript實(shí)現(xiàn)鼠標(biāo)拖動(dòng)進(jìn)度條


在HTML文件中,我們已經(jīng)準(zhǔn)備好了用來(lái)拖動(dòng)的進(jìn)度條和滑塊。但是,目前還沒(méi)有實(shí)現(xiàn)鼠標(biāo)拖動(dòng)進(jìn)度條的功能。接下來(lái),我們將使用JavaScript來(lái)實(shí)現(xiàn)這一功能。


第一,我們需要獲取進(jìn)度條和滑塊的DOM元素,具體代碼如下:


```javascriptvar progress = document.getElementById('progress');var slider = document.getElementById('slider');```


然后,我們需要定義一些變量來(lái)保存當(dāng)前滑塊的位置,以及進(jìn)度條的總長(zhǎng)度和滑塊的可移動(dòng)范圍。具體代碼如下:


```javascriptvar sliderLeft = 0; // 滑塊的初始位置var progressWidth = progress.clientWidth; // 進(jìn)度條的總長(zhǎng)度var sliderWidth = slider.clientWidth; // 滑塊的寬度var sliderRange = progressWidth - sliderWidth; // 滑塊的可移動(dòng)范圍```


接下來(lái),我們需要為滑塊添加mousedown事件和mousemove事件。當(dāng)鼠標(biāo)按下時(shí),記錄當(dāng)前鼠標(biāo)的位置。當(dāng)鼠標(biāo)移動(dòng)時(shí),通過(guò)計(jì)算鼠標(biāo)的移動(dòng)距離,計(jì)算出滑塊應(yīng)該移動(dòng)的距離,然后更新滑塊的位置。具體代碼如下:


```javascriptslider.addEventListener('mousedown', function (e) { var startX = e.clientX; // 記錄初始鼠標(biāo)位置 var startLeft = slider.offsetLeft; // 記錄滑塊的初始位置 function mouseMoveHandler(e) { var moveX = e.clientX - startX; // 計(jì)算鼠標(biāo)移動(dòng)距離 var left = startLeft + moveX; // 計(jì)算滑塊應(yīng)該移動(dòng)的距離 if (left < 0) { left = 0; } if (left > sliderRange) { left = sliderRange; } slider.style.left = left + 'px'; // 更新滑塊的位置 } document.addEventListener('mousemove', mouseMoveHandler); document.addEventListener('mouseup', function () { document.removeEventListener('mousemove', mouseMoveHandler); });});```


3. 使用JavaScript實(shí)現(xiàn)顯示多張縮略圖


最后,我們需要使用JavaScript來(lái)實(shí)現(xiàn)顯示多張縮略圖的功能。


第一,我們需要獲取所有的縮略圖元素,并為它們添加click事件。當(dāng)點(diǎn)擊某個(gè)縮略圖時(shí),通過(guò)計(jì)算它在整個(gè)縮略圖列表中的索引值,計(jì)算出滑塊應(yīng)該移動(dòng)的距離。然后,更新滑塊的位置,并將對(duì)應(yīng)的縮略圖添加active類(lèi)名,以便于樣式設(shè)置。同時(shí),將其他縮略圖的active類(lèi)名移除。具體代碼如下:


```javascriptvar thumbnails = document.querySelectorAll('#thumbnails img');for (var i = 0; i < thumbnails.length; i++) { thumbnails[i].addEventListener('click', function () { var index = Array.prototype.indexOf.call(thumbnails, this); var left = sliderRange / (thumbnails.length - 1) * index; slider.style.left = left + 'px'; for (var j = 0; j < thumbnails.length; j++) { thumbnails[j].classList.remove('active'); } this.classList.add('active'); });}```


完整代碼


下面是完整的JavaScript代碼:


```javascriptvar progress = document.getElementById('progress');var slider = document.getElementById('slider');var thumbnails = document.querySelectorAll('#thumbnails img');


var sliderLeft = 0;var progressWidth = progress.clientWidth;var sliderWidth = slider.clientWidth;var sliderRange = progressWidth - sliderWidth;


slider.addEventListener('mousedown', function (e) { var startX = e.clientX; var startLeft = slider.offsetLeft; function mouseMoveHandler(e) { var moveX = e.clientX - startX; var left = startLeft + moveX; if (left < 0) { left = 0; } if (left > sliderRange) { left = sliderRange; } slider.style.left = left + 'px'; updateActiveThumbnail(left); } document.addEventListener('mousemove', mouseMoveHandler); document.addEventListener('mouseup', function () { document.removeEventListener('mousemove', mouseMoveHandler); });});


for (var i = 0; i < thumbnails.length; i++) { thumbnails[i].addEventListener('click', function () { var index = Array.prototype.indexOf.call(thumbnails, this); var left = sliderRange / (thumbnails.length - 1) * index; slider.style.left = left + 'px'; updateActiveThumbnail(left); });}


function updateActiveThumbnail(left) { for (var i = 0; i < thumbnails.length; i++) { var thumbnailLeft = getThumbnailLeft(i); if (thumbnailLeft - 20 < left && left < thumbnailLeft + 20) { thumbnails[i].classList.add('active'); } else { thumbnails[i].classList.remove('active'); } }}


function getThumbnailLeft(index) { var width = thumbnails[index].clientWidth; var margin = 10; var left = index * (width + margin); return left;}```


總結(jié)


通過(guò)使用JavaScript來(lái)實(shí)現(xiàn)鼠標(biāo)拖動(dòng)進(jìn)度條,同時(shí)顯示多張縮略圖,可以大大提高用戶體驗(yàn)。在實(shí)現(xiàn)過(guò)程中,我們需要準(zhǔn)備HTML和CSS,并在JavaScript中編寫(xiě)具體實(shí)現(xiàn)代碼。特別是在計(jì)算滑塊應(yīng)該移動(dòng)的距離時(shí),需要特別注意。除此之外,還需要考慮如何設(shè)置縮略圖的active類(lèi)名,以達(dá)到預(yù)期的效果。希望本文對(duì)初學(xué)者有所幫助。
php圖片 php圖片 php圖片

為什么都選用php建網(wǎng)站

全球5000萬(wàn)互聯(lián)網(wǎng)網(wǎng)站60%以上都在使用PHP技術(shù),AlexaTOP500中國(guó)網(wǎng)站排名中有394家使用PHP,國(guó)內(nèi)80%以上動(dòng)態(tài)網(wǎng)站使用PHP進(jìn)行開(kāi)發(fā),在Web后端語(yǔ)言中PHP全球市場(chǎng)語(yǔ)言占有率達(dá)到80%。像Facebook、Google、新浪、百度、YouTube、騰訊都在使用PHP。

1、開(kāi)放源代碼,所有的PHP源代碼事實(shí)上都可以得到。
2、免費(fèi)性,php和其它技術(shù)相比,PHP本身免費(fèi)且是開(kāi)源代碼。
3、快捷性,程序開(kāi)發(fā)快,運(yùn)行快,技術(shù)本身學(xué)習(xí)快。嵌入于HTML:因?yàn)镻HP可以被嵌入于HTML語(yǔ)言,它相對(duì)于其他語(yǔ)言。編輯簡(jiǎn)單,實(shí)用性強(qiáng),更適合初學(xué)者。
4、跨平臺(tái)性強(qiáng),由于PHP是運(yùn)行在服務(wù)器端的腳本,可以運(yùn)行在UNIX、LINUX、WINDOWS、Mac OS下。
5、專(zhuān)業(yè)專(zhuān)注,PHP支持腳本語(yǔ)言為主,同為類(lèi)C語(yǔ)言。
6、效率高:PHP消耗相當(dāng)少的系統(tǒng)資源。因此工作效率更高
7、面向?qū)ο?,在php4,php5 中,面向?qū)ο蠓矫娑加辛撕艽蟮母倪M(jìn),php完全可以用來(lái)開(kāi)發(fā)大型商業(yè)程序。
8、圖像處理,用PHP動(dòng)態(tài)創(chuàng)建圖像,PHP圖像處理默認(rèn)使用GD2。且也可以配置為使用image magick進(jìn)行圖像處理。

PHP是目前最流行的編程語(yǔ)言,這毋庸置疑。它驅(qū)動(dòng)全球超過(guò)2億多個(gè)網(wǎng)站,有全球超過(guò)81.7%的公共網(wǎng)站在服務(wù)器端采用PHP。PHP常用的數(shù)據(jù)結(jié)構(gòu)都內(nèi)置了,使用起來(lái)方便簡(jiǎn)單,也一點(diǎn)都不復(fù)雜,表達(dá)能力相當(dāng)靈活。

【企業(yè)網(wǎng)站建設(shè)】企業(yè)網(wǎng)站建設(shè),企業(yè)網(wǎng)站設(shè)計(jì),中小企業(yè)網(wǎng)站制作,企業(yè)官網(wǎng)建設(shè)公司
【營(yíng)銷(xiāo)型網(wǎng)站建設(shè)】營(yíng)銷(xiāo)網(wǎng)站建設(shè),營(yíng)銷(xiāo)型網(wǎng)站設(shè)計(jì)制作,SEO系統(tǒng),關(guān)鍵詞輕松上首頁(yè)
【品牌網(wǎng)站建設(shè)】品牌網(wǎng)站建設(shè),品牌網(wǎng)站開(kāi)發(fā),高端品牌網(wǎng)站制作,企業(yè)品牌官網(wǎng)建設(shè)
【外貿(mào)網(wǎng)站建設(shè)】專(zhuān)業(yè)英文網(wǎng)站建設(shè),外貿(mào)網(wǎng)站定制開(kāi)發(fā)全球訪問(wèn)快,能快速排名谷歌第一頁(yè)
【響應(yīng)式網(wǎng)站建設(shè)】響應(yīng)式網(wǎng)站建設(shè),H5 html5設(shè)計(jì),制作響應(yīng)式網(wǎng)頁(yè),響應(yīng)式建站
【商城網(wǎng)站建設(shè)】購(gòu)物網(wǎng)站平臺(tái) 電商商城建站, 購(gòu)物商城網(wǎng)站建設(shè) 大型商城網(wǎng)站開(kāi)發(fā)
【微信/小程序開(kāi)發(fā)】微信公眾號(hào)開(kāi)發(fā),微信小程序開(kāi)發(fā),微信公共號(hào)二次開(kāi)發(fā),微信公共平臺(tái)開(kāi)發(fā)
【PHP定制開(kāi)發(fā)】PHP開(kāi)發(fā),分銷(xiāo)系統(tǒng)開(kāi)發(fā),物聯(lián)網(wǎng)定制開(kāi)發(fā),PHP應(yīng)用程序開(kāi)發(fā),Web應(yīng)用開(kāi)發(fā)
以上是"用js做鼠標(biāo)拖動(dòng)進(jìn)度條實(shí)現(xiàn)顯示多張縮略圖"資料的整理.了解更"用js做鼠標(biāo)拖動(dòng)進(jìn)度條實(shí)現(xiàn)顯示多張縮略圖"的知識(shí).請(qǐng)關(guān)注網(wǎng)商在線htps://www.goalq.com.cn
本頁(yè)關(guān)鍵詞:鼠標(biāo),拖動(dòng),縮略圖
企業(yè)網(wǎng)站定制

企業(yè)網(wǎng)站定制 根據(jù)企業(yè)需求,量身定制設(shè)計(jì)

企業(yè)網(wǎng)站定制:2800元起
添加微信 請(qǐng)說(shuō)明來(lái)意
聯(lián)系我們
站內(nèi)搜索

24小時(shí)服務(wù)熱線 0755-29765948
  • 地址:深圳市羅湖區(qū)人民北路2033號(hào)206
  • 電話:0755-29765948 傳真:82256610
  • 手機(jī):13714666846 18948334877
  • 郵箱:gong@ew35.com 164761418@qq.com
  • 粵ICP備14049207號(hào)
創(chuàng)意化數(shù)字品牌整合網(wǎng)絡(luò)營(yíng)銷(xiāo)
營(yíng)銷(xiāo)網(wǎng)站讓你坐等商機(jī)坐傭客戶,Rss

版權(quán)所有:深圳市網(wǎng)商在線科技有限公司

友情鏈接: