轮播海报的箭头代码-求类似于淘宝产品详情页面大图下面多个小图然后点击左右箭头可以换图片的那种效果的CSS或JS代码
js如何实现轮播图播放效果(附代码)

本篇文章给大家带来的内容是关于js如何实现轮播图播放效果(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
早前做轮播图的时候,我们习惯在网上找一些现成的例子修改修改使用。现在做轮播图,像bootstrap和iview等前端框架中都有封装好的特效,直接拿过来使用就可以了。但是轮播图是怎么做的呢。下面我们用原生代码来手写一个轮播图的特效。
实现效果如下:(图片来自网络)
实现功能如下:
鼠标划在左半部分出现左箭头切换,鼠标划在右半部分出现右箭头切换。
点击数字播放,当前播放页数字背景透明度为1,非当前页透明度为0.6
点击缩略图播放,当前播放页缩略图透明度为1,非当前页缩略头透明度为0.3
间隔2000ms自动播放(包括图片、数字、缩略图)。
根据前面运动知识,实现代码如下:我们把前面总结的运动框架封装在中
<!DOCTYPE html>
<html>
<head>
<title>轮播图</title>
<script src=""></script>
<style>
*{
margin: 0;
padding: 0;
}
#switch{
width: 1400px;
height: 520px;
margin:auto;
position: relative;
overflow: hidden;
}
#switch .bigpic li{
position: absolute;
top: 0;
left: 0;
}
#switch .bigpic li:nth-child(1){
z-index: 2;
}
#switch .prev{
width: 46px;
height: 46px;
line-height: 46px;
color: #fff;
border-radius: 100%;
background: rgba(255,255,255,0.6);
position: absolute;
top:192px;
left: 20px;
border-width: 0;
filter:alpha(opacity:0);
opacity:0;
z-index: 999;
}
#switch .next{
width: 46px;
height: 46px;
line-height: 46px;
color: #fff;
border-radius: 100%;
background: rgba(255,255,255,0.6);
position: absolute;
top:192px;
right: 20px;
border-width: 0;
filter:alpha(opacity:0);
opacity:0;
z-index: 9999;
}
#switch .number{
position: absolute;
right: 30px;
top: 390px;
z-index: 9999;
list-style: none;
}
#switch .number li{
display: inline-block;
width: 24px;
height: 24px;
line-height: 24px;
background: #fff;
border-radius: 100%;
color: #000;
text-align: center;
cursor: pointer;
filter:alpha(opacity:60);
opacity:0.6;
}
#switch .number li:nth-child(1){
filter:alpha(opacity:100);
opacity:1.0;
}
#switch .mark_left{
width: 700px;
height: 430px;
position: absolute;
left: 0;
top: 0;
z-index: 9998;
}
#switch .mark_right{
width: 700px;
height: 430px;
position: absolute;
right: 0;
top: 0;
z-index: 9998;
}
.smallimg{
list-style: none;
padding:0;
margin:0;
position: absolute;
top: 434px;
height: 86px;
}
.smallimg li{
width:280px;
height: 86px;
float: left;
filter:alpha(opacity:30);
opacity:0.3;
}
.smallimg li:nth-child(1){
filter:alpha(opacity:100);
opacity:1.0;
}
.smallimg li img{
width:280px;
height: 86px;
}
</style>
<script>
function getByClass(oParent,sClass){
var aEle=("*");
var aResult=[];
for(var i=0; i<; i++){
if(aEle[i].className===sClass){
(aEle[i]);
}
}
return aResult;
}
=function(){
var op=("switch");
var oBtnPrev=getByClass(op,"prev")[0];
var oBtnNext=getByClass(op,"next")[0];
var oMarkLeft=getByClass(op,"mark_left")[0];
var oMarkRight=getByClass(op,"mark_right")[0];
// 左右按钮
==function(){
startMove(oBtnPrev,"opacity",100);
}
==function(){
startMove(oBtnPrev,"opacity",0);
}
==function(){
startMove(oBtnNext,"opacity",100);
}
==function(){
startMove(oBtnNext,"opacity",0);
}
// 大图切换
var opNumber=getByClass(op,"number")[0];
var aNumber=("li");
var oBigPic=getByClass(op,"bigpic")[0];
var aImg=("li");
var aSmallImg=getByClass(op,"smallimg")[0];
var aSmall=("li");
var nowZIndex=2;
var now=0;
=*aSmall[0].offsetWidth+"px";
for(var j=0; j<; j++){
aNumber[j].index=j;
aNumber[j].onclick=function(){
if(===now){
return;
}
now=;
tab();
}
aNumber[j].onmouseover=function(){
startMove(this,"opacity",100);
}
aNumber[j].onmouseout=function(){
if(!=now){
startMove(this,"opacity",60);
}
}
}
for(var m=0; m<; m++){
aSmall[m].index=m;
aSmall[m].onclick=function(){
if(===now){
return;
}
now=;
tab();
}
aSmall[m].onmouseover=function(){
startMove(this,"opacity",100);
}
aSmall[m].onmouseout=function(){
();
(now);
if(!=now){
startMove(this,"opacity",30);
}
}
}
function tab(){
aImg[now].=nowZIndex++;
for(var i=0; i<; i++){
startMove(aNumber[i],"opacity",60);
}
for(var i=0; i<; i++){
startMove(aSmall[i],"opacity",30);
}
startMove(aNumber[now],"opacity",100);
startMove(aSmall[now],"opacity",100);
aImg[now].=0;
startMove(aImg[now],"height",430);
// if(now===0){
// startMove(aSmallImg,"left",0);
// }else if(now===-1){
// startMove(aSmallImg,"left",-(now-2)*aSmall[0].offsetWidth);
// }else{
// startMove(aSmallImg,"left",-(now-1)*aSmall[0].offsetWidth);
// }
if(now===0){//根据不同的规则设置不同的if
startMove(aSmallImg,"left",0);
}else if(now===-1){
startMove(aSmallImg,"left",-(now-4)*aSmall[0].offsetWidth);
}
}
=function(){
now--;
if(now===-1){
now=-1;
}
tab();
}
=function(){
now++;
if(now===){
now=0;
}
tab();
}
var timer=setInterval(,2000);
=function(){
clearInterval(timer);
}
=function(){
timer=setInterval(,2000);
}
}
</script>
</head>
<body>
<p id="switch">
<ul class="bigpic">
<li><img src="1.jpg" alt=""></li>
<li><img src="2.jpg" alt=""></li>
<li><img src="3.jpg" alt=""></li>
<li><img src="4.jpg" alt=""></li>
<li><img src="5.jpg" alt=""></li>
<li><img src="6.jpg" alt=""></li>
</ul>
<button class="prev"><</button>
<button class="next">></button>
<p class="mark_left"></p>
<p class="mark_right"></p>
<ul class="number">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
<ul class="smallimg">
<li><img src="1.jpg" alt=""></li>
<li><img src="2.jpg" alt=""></li>
<li><img src="3.jpg" alt=""></li>
<li><img src="4.jpg" alt=""></li>
<li><img src="5.jpg" alt=""></li>
<li><img src="6.jpg" alt=""></li>
</ul>
</p>
</body>
</html> getStyle(obj,name){
if(){
return [name];
}
else{
return getComputedStyle(obj,false)[name];
}
}
function startMove(obj, attr, iTarget) {
clearInterval();
= setInterval(function() {
var cur=0;
if(attr==="opacity"){
cur=(parseFloat(getStyle(obj,attr))*100);//有可能会出现误差0.07*100
}
else{
cur=parseInt(getStyle(obj,attr));
}
var speed = (iTarget - cur) / 6;
speed = speed > 0 ? (speed) : (speed);
if (cur === iTarget) {
clearInterval();
} else {
if(attr==="opacity"){
="alpha(opacity:"+cur+speed+")";
=(cur+speed)/100;
}else{
[attr]=cur+speed+"px";
}
}
}, 30)
}
求类似于淘宝产品详情页面大图下面多个小图然后点击左右箭头可以换图片的那种效果的CSS或JS代码

参考代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.btn{
display: block;
margin:135px auto;
width: 30px;
height: 30px;
font-size: 30px;
cursor: pointer;
}
.btn:hover
{
color: gray;
font-size: 35px;
font-weight: bold;
}
.img
{
width: 600px;
height: 400px;
float: left;
transition: all 1s;
}
.info-img
{
width: 100px;
height: 67px;
float: left;
margin-left: 20px;
}
</style>
</head>
<body>
<div style="width: 1000px;height: 800px;margin: auto;">
<div style="width: 700px;height: 500px;margin: auto;">
<div style="width: 50px;height: 400px;float: left;text-align: center;">
<span class="btn" onclick="change_img('last')"><</span>
</div>
<img id="1" src="image/" class="img">
<div style="width: 50px;height: 400px;float: left;text-align: center;">
<span class="btn" onclick="change_img('next')">></span>
</div>
<div style="width: 700px;height: 100px;text-align: center;">
<span>图片介绍:</span>
<span id="text">风景图片1</span>
</div>
</div>
<div id="info" style="width: 700px;height: 200px;margin: auto;text-align: center;">
</div>
</div>
<script>
var data = [
{id:1,src:"image/",text:"风景图片1"},
{id:2,src:"image/",text:"风景图片2"},
{id:3,src:"image/",text:"风景图片3"},
{id:4,src:"image/",text:"风景图片4"},
];
var info = ("info");
onload = function () {
let doc=``;
for(d of data)
{
doc = doc + `<div><img src="${d.src}" value="${d.id}" title="${d.text} "> </div>`;
}
= doc;
};
var img = ("img")[0];
var text = ("text");
function change_img(e) {
var id = parseInt();
if(e == "next")
{
id += 1;
}else {
id -= 1;
}
if(id>4)
{
id=1;
}else if(id<1){
id=4;
}
try {
("src",data[id-1].src);
= data[id-1].text;
= id;
}catch(e) {
id = id - 1;
}
}
</script>
</body>
</html>
效果:
注意:
图片是本地的
样式这些都可以自己定义。
求淘宝全屏海报轮播html代码

这是我用JQuery写的,图片自己添加
<!doctype>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>图片平滑切换</title>
<style type="text/css">
/** css Reset **/
body, div, ul, ol, li, h1, h2, h3, h4, h5, h6, form, input, p, th, td {
padding: 0;
margin: 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
fieldset, img {
border: 0;
}
ul,li{list-style:none;}
h1, h2, h3, h4, h5, h6 {
font-weight: normal;
font-size: 100%;
}
/** css Reset end **/
/** Page **/
body
{
background-color:#ccc;
margin:0 auto;
text-align:center;
}
.main
{
font-size:12px;
margin:80px auto;
width:900px;
height:600px;
}
#container
{
width:800px;
height:449px;
position:relative;
overflow:hidden;
}
#container .image
{
position:absolute;
height:449px;
width:4800px;
}
#container .image li
{
float:left;
width:800px;
height:449px;
position:relative;
overflow:hidden;
background:#000;
}
#container .sign
{
bottom:0px;
position:absolute;
background:url("images/bg_");
width:800px;
padding-left:600px;
}
#container .sign li
{
float:left;
color:Gray;
text-align:center;
line-height:16px;
width:16px;
height:16px;
font-family:Arial;
cursor:pointer;
overflow:hidden;
margin:6px 8px;
background-color:#fff;
}
#container .sign
{
color:White;
background-color:Maroon;
}
/** Page end **/
</style>
</head>
<body>
<div class="main">
<div id="container">
<ul class="image">
<li><img alt="Bing" src="images/" /></li>
<li><img alt="Bing" src="images/" /></li>
<li><img alt="Bing" src="images/" /></li>
<li><img alt="Bing" src="images/" /></li>
<li><img alt="Bing" src="images/" /></li>
<li><img alt="Bing" src="images/" /></li>
</ul>
<ul class="sign">
<li class="on">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
</div>
</div>
<script type="text/javascript" src="js/jquery-1.4.2."></script>
<script type="text/javascript">
$(function () {
var len = $(".image > li").length;
var i = 0;
function turn() {
i = $(".sign > li").index($(".on"))
i < len - 1 ? i++ : i = 0
$(".sign > li").eq(i).addClass("on").siblings("li").removeClass("on");
showImg(i);
}
$(".sign > li").click(function () {
clearInterval(set);
var index = $(this).index();
$(this).addClass("on").siblings("li").removeClass("on");
showImg(index);
set = setInterval(turn, 5000);
});
set = setInterval(turn, 5000);
});
function showImg(index) {
var width = $("#container").width();
$(".image").stop(true, false).animate({ "left": -index * width }, 500);
}
</script>
</body>
</html>
希望对你能有所帮助。
-
果盘绘画图片大全简单创作方法快速制作技巧2024-01-02 16:57:54
-
小年插画图片创作方法快速制作技巧2024-01-02 16:57:20
-
小年绘画作品制作技巧2024-01-02 16:55:45
-
小年插画图片创作方法快速制作技巧2024-01-02 16:55:02
-
立春插画图片如何制作2024-01-02 16:54:19
-
立春插画图片创作方法快速制作技巧2024-01-02 16:53:32






扫描二维码添加客服微信
扫描二维码关注