1. 程式人生 > >最簡單 最詳細的原生js寫輪播圖

最簡單 最詳細的原生js寫輪播圖

最簡單最詳細的原生js寫輪播圖

該輪播圖實現了自動輪播,圖片切換,滑鼠移入移出事件,佈局簡單,容易上手。希望能幫到大家。效果圖如下:
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

佈局擴充套件

裡面用了幾種方式實現了div的垂直居中,可見樣式程式碼註釋。

HTML

@HTML頁面佈局
 <!-- 介紹團隊  -->
    <div id="introduce_page" class="page">
      <div id="banner"><!-- 輪播 -->
        <div id="pic"><!-- 輪播圖片佈局 -->
<img src="images/1.jpg" id="img"> <a href="javascript:;" id="prve"><</a><!-- 左邊切換按鈕 --> <a href="javascript:;" id="next">></a><!-- 右邊邊切換按鈕 --> <span id="span">數量正在載入中......</span><!--圖片數量 --> <p
id="p">
圖片正在載入中.......</p><!--圖片說明 --> <ul id="ul"></ul><!-- 輪播小圓點 --> </div> <div id="word">輪播圖片文字介紹正在載入中....... </div><!--介紹文字說明--> </div> </div>

CSS

@css樣式佈局
 #introduce_page{  
    background
:rgb(10, 10, 10); border: solid 1px rgba(0,0,0,0); } #banner{ width: 50%; height: 50%; border: solid 2px rgba(238,238,238,0.13); vertical-align: middle; /* 垂直居中banner */ position: relative; left: 50%; /* 定位父級的50% */ top: 50%; transform: translate(-50%,-50%); /*自己的50% */ color: aliceblue; } #pic{ width: 70%; height: 100%; float: left; border: solid 1px rgba(238,238,238,0.13); position: relative; } #word{ width: 20%; height: 50%; float: right; border: solid 1px rgba(238,238,238,0.13); margin: auto; /* 垂直居中靠右文字介紹 */ position: absolute; top: 0;bottom: 0; right: 0; } #prve{ /* 垂直居中靠左切換按鈕*/ position: absolute; top:0; left: 0; bottom: 0; margin: auto; text-align: center; } #next{ /* 垂直居中靠右切換按鈕 */ position: absolute; top:0; right: 0; bottom: 0; margin: auto; text-align: center; } a{ width: 40px; height: 40px; text-decoration: none; font-size: 30px; background: #000000; color: #ffffff; filter: alpha(opacity 40); opacity: 0.4; } a:hover{ filter: alpha(opacity 90); opacity: 0.9; } img{ height: 100%; width: 100%; } #p,#span{ width: 100%; height: 30px; filter:alpha(opacity 40); opacity: 0.4; background-color: black; color: #ffffff; text-align: center; line-height: 30px; border: solid 1px rgba(0,0,0,0); } #span{ position: absolute; top:0; } #p{ position: absolute; left: 0;right: 0; bottom: 0;margin: auto; } #ul{ margin: 0; padding: 0; width:14%; height: 30%; text-align: center; border: solid 1px rgba(0,0,0,0); position: absolute; right: 0;left: 0;bottom: 30px; margin: auto; height: 20px; } #ul li { width: 13px; height: 13px; list-style: none; border-radius: 100%; float: left; margin:0 2px; border: 1px #ccc solid; } .on{ background-color: #ffffff; }

JavaScript

@JavaScript程式碼
 //獲取元素
var oBanner=document.getElementById('banner');
var oPic=document.getElementById('pic');
var oImg=document.getElementById('img');
var oPrve=document.getElementById('prve');
var oNext=document.getElementById('next');
var oSpan=document.getElementById('span');
var oP=document.getElementById('p');
var oUl=document.getElementById('ul');
var aLi=oUl.getElementsByTagName('li');
var oText=document.getElementById('word');

//陣列存放在圖片的地址,數量(模擬資料)
var arrUrl=['images/1.jpg','images/2.jpg','images/3.jpg','images/4.jpg'];
var arrTitle=['圖片1','圖片二','圖片三','圖片四'];
var arrText=['圖片1介紹文字片段','圖片2介紹文字片段','圖片3介紹文字片段','圖片4介紹文字片段'];
var num=0;

//往ul裡面動態新增li
for(var i=0;i<arrUrl.length;i++){
    oUl.innerHTML+='<li></li>';
}

console.log(oUl);

//點選圖片切換
function fnTab(){
    oImg.src=arrUrl[num];//改圖片的src
    oSpan.innerHTML=1+num+'/'+arrUrl.length;//圖片數量字串拼接  '1/4' 的形式.
    oP.innerHTML=arrTitle[num];//圖片標題
    oText.innerHTML=arrText[num];//圖片介紹文字
    for(var i=0;i<aLi.length;i++)//切換小圓點樣式
    {
        aLi[i].className='';
    }
    aLi[num].className='on';
}
fnTab();

//點選左邊
oPrve.onclick=function(){
    num--;
    if(num==-1)
    {
        num=arrUrl.length-1;
    }
    fnTab();
}

//點選右邊
oNext.onclick=function(){
    num++;
    if(num==arrUrl.length)
    {
        num=0
    }
    fnTab();
}

//點選小圓點
for(var i=0;i<aLi.length;i++){
    aLi[i].index=i;//自定義屬性,索引值
    aLi[i].onclick=function(){
        num=this.index;
        fnTab();
    }

}

//定時器自動輪播
var timer=null;
function autoPlay(){
    timer=setInterval(function(){
        num++;
        num%=arrUrl.length;
        fnTab();
    },1000);
}

// autoPlay();
setTimeout(autoPlay,2000);

//滑鼠移入清除定時器
oBanner.onmouseover=function(){
    clearInterval(timer);
}

//滑鼠移出
oBanner.onmouseout=autoPlay;

相關推薦

簡單 詳細原生js

最簡單最詳細的原生js寫輪播圖 該輪播圖實現了自動輪播,圖片切換,滑鼠移入移出事件,佈局簡單,容易上手。希望能幫到大家。效果圖如下: 佈局擴充套件 裡面用了幾種方式實現了div的垂直居中,可見樣式程式碼註釋。 HTML

授人以漁式解析原生JS

需求與分析 需求:迴圈無縫自動輪播五張圖,按左右箭頭可以手動切換圖片,滑鼠點選輪播圖下面按鈕 1 2 3 4 5會跳轉到對應的第1 2 3 4 5張圖片。滑鼠放到輪播圖的圖片上時不再自動輪播並且左右箭頭顯示出來,滑鼠移開時左右箭頭隱藏掉並且自動輪播。 效果圖: 分析: 佈局:準備七張圖片

h5原生js實現

list sla head log startx creat ase hit eve 預覽地址:http://s.xnimg.cn/a90529/wap/wechatLive/test/slide.html <!DOCTYPE html> <html l

原生js封裝

round this getc 行間樣式 gets -m ++ fun ted 原生js封裝輪播圖 對於初學js的同學來說,輪播圖還是一個難點,尤其是原生js封裝輪播圖代碼,下面是我之前做的一個輪播圖項目中封裝好的一些代碼,有需要的同學可以看一下,有什麽不懂的可以看註釋,

原生js實現原理分析

一、輪播圖需求 輪播圖需要實現左右翻頁的無縫連線 需要點選左右切換 需要實現跳轉 顯示當前位置的小圓點 二、輪播圖的原理 1.圖片移動實現原理: 利用浮動將所有所有照片依次排成一行,給這一長串圖片新增一個父級的遮罩,每次只顯示一張圖,其餘的都隱

原生js實現原理

輪播圖的原理1.圖片移動實現原理:利用浮動將所有所有照片依次排成一行,給這一長串圖片新增一個父級的遮罩,每次只顯示一張圖,其餘的都隱藏起來。對圖片新增絕對定位,通過控制left屬性,實現照片的移動。 2.圖片移動動畫原理:從a位置移動到b位置,需要先計算兩點之間的差值,通過差值和時間間隔,計算出每次移動的步

使用原生js實現效果

這幾天在逛網站的時候,發現很多網站都有輪播圖這個效果,所以我就仿照小米的官網用原生js寫了一個輪播圖效果,希望大家喜歡。 這是我釋出在github上的最後實現的效果:https://heternally.github.io/banner/ 下面我簡單跟大家說一下

原生js實現

今天分享一下簡單的輪播圖製作過程,用原生js實現。雖然網上有各種外掛製作的高大上又好用的輪播圖,但還是要清楚它的基本原理。 1.基本原理 將所有圖片並排放到一個div中,然後再放到展示視窗當中,讓裝有所有圖片的div通過改變left值,從而左右移動實現圖片切換。 2.htm

原生JS實現1---勻速動畫

                                JS實現輪播圖 專案實現結果圖: 需求:1 根據圖片動態新增小圓點            2 目標移動到小圓點輪播圖片            3 滑鼠離開圖片,定時輪播圖片;滑鼠在圖片上時暫

利用原生js實現效果

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js原生輪播圖</title> <style type="text

animate動畫、原生JS實現

寫在前面 最近在寫專案的時候,才發現自己對css3這部分的內容已經生疏了,複習css3的時候,看到animate屬性,就用其寫了個焦點輪播圖,當然自己也用原生JS碼了個,當然css3動畫無疑是錦上添花,還是要多總結啊,原始碼我們會在最後附上git地址,好了,下

原生JS實現的幾種方式

I 絕對定位+透明度 原理:首先,將所有輪播圖以絕對定位的方式定位父元素的相同位置;接著,實現上下鍵按鈕修改active的下標;最後,將所有圖片透明度重置為0,而被啟用的圖片透明度設定為1; 優點:實現最為簡單,程式碼量小,圖片過渡自然; 缺點:沒有左右滑

原生JS實現

要求: 在和上一任務同一目錄下面建立一個task0002_3.html檔案,在js目錄中建立task0002_3.js,並在其中編碼,實現一個輪播圖的功能。 圖片數量及URL均在HTML中寫好 可以配置輪播的順序(正序、逆序)、是否迴圈、間隔時長 圖片切換的

js網站怎麽做如何做?雞哥教你簡單制作效果炫酷

多人 tle 哪裏 round 下載 簡單的 文件 但是 cell 日了狗啦,剛剛雞哥辛苦碼了那麽多字全丟了又要重新寫,這是第二遍寫了...今天雞哥給小白寫個不需要寫js原生代碼,只需要幾個插件和一段通俗易懂得jquery代碼就能搞定的輪播圖,當然js原生代碼寫著也不算很繁

原生js實現

tex tom enter utf-8 定義 radi absolut tco query <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">

JS原生程式碼實現(無左右滑動,底下圓點按鈕)

先上效果圖: 由於動態圖太大,所以只能截圖了;大致效果,圖片輪播的過程中,底下的灰色提示漸漸出現; 現在來說實現思路:        HTML部分: <div id="content"> <img id="img1" /> &

原生JS實現 效果

<div id="playImages" class="play"> <ul class="big_pic"> <div class="prev"></div> <div class

前端基礎功能,原生js實現圖例項教程

輪播圖是前端最基本、最常見的功能,不論web端還是移動端,大平臺還是小網站,大多在首頁都會放一個輪播圖效果。本教程講解怎麼實現一個簡單的輪播圖效果。學習本教程之前,讀者需要具備html和css技能,同時需要有簡單的javascript基礎。 本例項效果如下圖所示:    根據例項效果,需

js實現

display lex tee 添加 har scrip con tle win 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF

第一次嘗試自己

parse function clas top 立即執行 嘗試 con arrow add 其實嗯,對於前端我與很多很多想說的話,但是看著種種最後卻不知道說什麽了,既然這樣那就什麽都不要說 第一次嘗試自己寫輪播圖,對於初學前端的我來說我感覺我晚了很久了 為什麽要模仿寫一份出