国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

JavaScript實現(xiàn)旋轉(zhuǎn)輪播圖

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:32:33
文檔

JavaScript實現(xiàn)旋轉(zhuǎn)輪播圖

JavaScript實現(xiàn)旋轉(zhuǎn)輪播圖:最近一直在學(xué)習(xí)JavaScript,然后看到旋轉(zhuǎn)輪播圖的案例,就嘗試著用js做了一個簡單的輪播圖,因為無法顯示動態(tài)效果,所以就放個截圖: 這個效果是這樣的:一共有7張圖片,它們會自動地向左滑動,然后左右箭頭也可以控制輪播圖的左滑和右滑,同時,如果鼠標
推薦度:
導(dǎo)讀JavaScript實現(xiàn)旋轉(zhuǎn)輪播圖:最近一直在學(xué)習(xí)JavaScript,然后看到旋轉(zhuǎn)輪播圖的案例,就嘗試著用js做了一個簡單的輪播圖,因為無法顯示動態(tài)效果,所以就放個截圖: 這個效果是這樣的:一共有7張圖片,它們會自動地向左滑動,然后左右箭頭也可以控制輪播圖的左滑和右滑,同時,如果鼠標

最近一直在學(xué)習(xí)JavaScript,然后看到旋轉(zhuǎn)輪播圖的案例,就嘗試著用js做了一個簡單的輪播圖,因為無法顯示動態(tài)效果,所以就放個截圖:

這個效果是這樣的:一共有7張圖片,它們會自動地向左滑動,然后左右箭頭也可以控制輪播圖的左滑和右滑,同時,如果鼠標停在圖片上,那么輪播圖會停止自動滑動,當(dāng)鼠標移開時,將會繼續(xù)向左輪播。
首先,我這里封裝了兩個函數(shù)(因為暫且還沒有學(xué)jQuery,所以用了封裝函數(shù)的方法來實現(xiàn)),第一個函數(shù)是$函數(shù),調(diào)用可以獲取html中的元素,代碼如下:

`function $(select){
 if (typeof select != 'string') {
 console.log('傳入的參數(shù)有誤'); 
 return null;
 }
 var firstChar = select.charAt(0);
 switch(firstChar){
 case '#':
 return document.getElementById(select.substr(1));
 break;
 case '.':
 if (document.getElementsByClassName){
 return document.getElementsByClassName(select.substr(1));
 } else {
 var result = [];
 var allElemnts = document.getElementsByTagName('*');
 console.log(allElemnts);
 for (var i = 0; i < allElemnts.length; i++){
 var e = allElemnts[i];
 var className = e.className;
 var classArr = className.split(' ');
 for (var j = 0; j < classArr.length; j++){
 var c = classArr[j];
 if (c == select.substr(1)) {
 result.push(e);
 break;
 }
 }
 }
 return result;
 }
 break;
 default :
 return document.getElementsByTagName(select);
 }
 }`

第二個函數(shù)是一個動畫函數(shù),用json實現(xiàn)多條樣式的動態(tài)改變,從而達到一個動畫效果,代碼如下: `

function animate(element, json, fun) {
 clearInterval(element.timer);
 function getStyle(element, styleName){
 if(element.currentStyle){
 //ie瀏覽器下 直接通過currentstyle來獲取
 //return element.currentStyle.heigh;
 return element.currentStyle[styleName];
 }else{
 var computedStyle = window.getComputedStyle(element,null);
 return computedStyle[styleName];
 }
 }
 var isStop = false;
 element.timer = setInterval(function () {
 isStop = true;
 for (var key in json){
 var target = json[key];
 var current;
 if (key == 'opacity') {
 //當(dāng)動畫的類型為透明度時 獲取的值應(yīng)該是浮點類型
 current = parseFloat(getStyle(element, key)) || 1;
 } else {
 //其他情況 用整數(shù)類型
 current = parseInt(getStyle(element, key)) || 0;
 } 
 var step = (target - current) / 10;
 if (key != 'opacity') {
 step = step > 0 ? Math.ceil(step) : Math.floor(step);
 }
 current += step;
 if (key == 'opacity') {
 if (Math.abs(target - current) > 0.01) {
 isStop = false;
 } else {
 current = target;
 }
 element.style.opacity = current + '';
 } else {
 if (Math.abs(target-current) > Math.abs(step)) {
 isStop = false;
 } else {
 current = target;
 }
 if (key == 'zIndex'){
 element.style.zIndex = Math.round(current);
 } else {
 element.style[key] = current + 'px';
 } 
 } 
 }
 if (isStop) {
 clearInterval(element.timer);
 console.log('動畫完成');
 if (typeof fun == 'function') {
 fun();
 }
 }
 }, 30);
}`

接下來就要寫html的部分了,因為只有幾張圖片,所以html的部分很簡單:

<body>
 <div class="box">
 <div class="content">
 <ul>
 <li><a href="#"><img src="./images/1.jpg"></a></li>
 <li><a href="#"><img src="./images/2.jpg"></a></li>
 <li><a href="#"><img src="./images/3.jpg"></a></li>
 <li><a href="#"><img src="./images/4.jpg" class="current"></a></li>
 <li><a href="#"><img src="./images/5.jpg"></a></li>
 <li><a href="#"><img src="./images/6.jpg"></a></li>
 <li><a href="#"><img src="./images/7.jpg"></a></li>
 </ul>
 </div>
 <div class="control">
 <a href="javascript:;" id="prev"></a>
 <a href="javascript:;" id="next"></a>
 </div>
 </div>
</body>

css樣式的部分也不多做敘述。

下面就是JS是部分啦,代碼也很簡單,理清楚就好

 window.onload = function(){
 //定位,并給圖片設(shè)置大小透明度
 var json = [{
 width: 630,
 top: 23,
 left: 0,
 zIndex: 2,
 opacity: 0
 },{
 width: 630,
 top: 23,
 left: 0,
 zIndex: 3,
 opacity: 0
 },{
 width: 630,
 top: 23,
 left: 0,
 zIndex: 4,
 opacity: 0.6
 },{
 width: 730,
 top: 0,
 left: 125,
 zIndex: 5,
 opacity: 1
 },{
 width: 630,
 top: 23,
 left: 350,
 zIndex: 4,
 opacity: 0.6
 },{
 width: 630,
 top: 23,
 left: 350,
 zIndex: 3,
 opacity: 0
 },{
 width: 630,
 top: 23,
 left: 350,
 zIndex: 2,
 opacity: 0
 }];
function refreshImageLocatin(index){
 //默認情況下 第i張圖對應(yīng)第i個位置
 //index=1時 第i個圖對應(yīng)i-1個位置
 //也就是第i個圖對應(yīng)i-index的位置
 var liArr = $('li');
 for(var i = 0; i < liArr.length; i++){
 var li = liArr[i];
 var locationIndex = i - index;
 console.log('i='+i);
 console.log('index='+index);
 console.log('locationIndex='+locationIndex);
 if(locationIndex < 0){
 locationIndex += 7;
 }
 var locationData = json[locationIndex];
 animate(li, locationData, null);
 }
 }

 refreshImageLocatin(0);

 var index = 0;
 $('#next').onclick = function(){
 index++;
 if(index == 7){
 index = 0;
 }
 refreshImageLocatin(index);
 }
 $('#prev').onclick = function(){
 index--;
 if(index < 0){
 index = 6;
 }
 refreshImageLocatin(index);
 }

 var nextImage = $('#next').onclick;
 var contentBox = $('.content')[0];
 //自動播放
 var timer = setInterval(nextImage, 3000);
 //當(dāng)鼠標移動到圖片上,停止播放
 contentBox.onmouseover = function(){
 clearInterval(timer);
 }
 contentBox.onmouseout = function(){
 timer = setInterval(nextImage ,3000)
 }
}

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JavaScript實現(xiàn)旋轉(zhuǎn)輪播圖

JavaScript實現(xiàn)旋轉(zhuǎn)輪播圖:最近一直在學(xué)習(xí)JavaScript,然后看到旋轉(zhuǎn)輪播圖的案例,就嘗試著用js做了一個簡單的輪播圖,因為無法顯示動態(tài)效果,所以就放個截圖: 這個效果是這樣的:一共有7張圖片,它們會自動地向左滑動,然后左右箭頭也可以控制輪播圖的左滑和右滑,同時,如果鼠標
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 日韩成人免费在线 | 日韩欧美片 | 国产在线视频一区二区三区 | 欧美日韩精选 | 波多野吉衣在线观看 | 国产欧美日韩高清专区手机版 | 亚洲视频一二区 | 91精品成人免费国产 | 久久久久久久久国产 | 国产精品不卡在线 | 91中文字幕在线视频 | 国产亚洲美女精品久久久2020 | 91在线 | 欧美: | 久久久精品久久久久久久久久久 | 欧美一区二区三区在线观看 | 国模冰冰双人炮gogo | 亚洲视频在线观 | 亚洲欧美在线综合 | 亚洲国产日韩欧美在线as乱码 | 国产精品一区二区久久精品 | 一级特黄女毛毛片 | 亚洲欧美色欧另类欧 | 欧美地区一二三 | 亚洲最新视频在线观看 | 国产精品合集一区二区三区 | 日本黄a | 久久99精品国产99久久 | 狼人综合伊人 | 可播放的免费男男videos不卡 | 亚洲一区二区三区久久久久 | 日韩欧美一区二区三区中文精品 | 中文字幕无线码一区 | 日韩午夜在线视频 | 国产网站免费在线观看 | 阿v精品一区二区三区 | 中国一级全黄的免费观看 | 日韩一二三 | 国产一区二区三区免费 | 日韩欧美影院 | 国产精品电影一区二区 | 手机在线观看国产精选免费 |