新浪数码轮播

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>

<style>
*{
    margin:0px;
    padding:0px;
    }
ul{
    overflow:hidden;
    position:relative;
}
h2{
    font-size:14px;
    font-weight:normal;
    text-align:center;
    }
li{
    list-style-type:none;
    float:left;
    }
#wrap{
     background:#D6EFF7;
     border:1px #73bdef solid;
     margin:50px auto;
     width:800px;
     height:280px;
     padding:10px;
     position:relative;
 }
#tabs{
    margin-left:300px;
    }

#tabs li{
    background:#CCC;
    padding:6px 30px;
    margin-right:15px;
    font-size:12px;
    color:#087b00;
    border:1px solid #a5def7;
    }
#new,#geek{
    position:absolute;
    width:820px;
    height:265px;
    left:0px;
    top:35px;
    background:#fff;

}
.left img{
    width:250px;
    height:220px;
    background:red;
    margin:10px 10px 2px;
    }
.left p{
    margin-left:10px;
    width:250px;
    text-align:center;
    background:#D6EFF7;
    line-height:20px;
    font-size:12px;
}
#new .showbox, #geek .showbox{
    position:absolute;
    top:10px;
    left:270px;
    width:540px;
    height:220px;
    overflow:hidden;
}
#new ul, #geek ul{
    width:1800px;
    }
#new ul img, #geek ul img{
    width:160px;
    height:150px;
    margin:0px 10px 5px;
    }
#new ul p, #geek ul p{
    font-size:12px;
    color:#999;
    width:160px;
    margin:5px 10px;
    }
#new .nav, #geek .nav{
    position:absolute;
    top:235px;
    width:540px;
    left:260px;
    }
.nav li{
    display:block;
    margin-right:60px;
    font-weight:bold;
    position:relative;
    left:200px;
    width:20px;
    height:20px;
    border:1px solid #73BDEF;
    text-align:center;
    padding:0 10px;
    cursor:pointer;
    }
#new .bullets, #geek .bullets{
    position:absolute;
    top:240px;
    left:510px;
    width:55px;
    }
#new .bullets li, #geek .bullets li{
    display:block;
    width:10px;
    height:10px;
    border:1px solid #73BDEF;
    border-radius:10px;
    margin:0px 2px;
    background:#fff;
    }
#geek .bullets{
    left:525px;
    }                        

</style>
<script type="text/javascript" src="float.js"></script>
<script type="text/javascript">
window.onload = function ()
{
    var otabs = document.getElementById(‘tabs‘);
    var tli = otabs.getElementsByTagName(‘li‘);
    var onew = document.getElementById(‘new‘);
    var ogeek = document.getElementById(‘geek‘);

    var abull1 = onew.getElementsByClassName(‘bullets‘)[0].getElementsByTagName(‘li‘);
    var abull2 = ogeek.getElementsByClassName(‘bullets‘)[0].getElementsByTagName(‘li‘);
    var arrow1 = onew.getElementsByClassName(‘nav‘)[0].getElementsByTagName(‘li‘);
    var arrow2 = ogeek.getElementsByClassName(‘nav‘)[0].getElementsByTagName(‘li‘);
    var ashowbox = document.getElementsByClassName(‘showbox‘);
    var content1 = ashowbox[0].getElementsByTagName(‘ul‘)[0];
    var content2 = ashowbox[1].getElementsByTagName(‘ul‘)[0];

    var num = 0;

    //初始化
    tli[0].style.background = ‘#fff‘;
    onew.style.display = ‘block‘;
    abull1[0].style.background = ‘#999‘;
    abull2[0].style.background = ‘#999‘;

    //转换
    tli[0].onmouseover = function ()
    {
        for( var i = 0; i < tli.length; i++)
        {
            tli[i].style.background = ‘#EFEFF7‘;
        }
        this.style.background = ‘#fff‘;
        onew.style.display = ‘block‘;
        ogeek.style.display = ‘none‘;
    };

    tli[1].onmouseover = function ()
    {
        for( var i = 0; i < tli.length; i++)
        {
            tli[i].style.background = ‘#EFEFF7‘;
        }
        this.style.background = ‘#fff‘;
        onew.style.display = ‘none‘;
        ogeek.style.display = ‘block‘;
    };

    arrow1[1].onclick = function ()
    {
        num++;
        if( num == abull1.length )
        {
            num = abull1.length - 1;
        }
        domove(content1,‘left‘,30,30,-540*num,function ()
        {
            for ( var i = 0; i < abull1.length; i++)
            {
                abull1[i].style.background = ‘#fff‘;
            }
            abull1[num].style.background = ‘#999‘;
        })
    };

    arrow1[0].onclick = function ()
    {
        num--;
        if(num < 0)
        {
            num = 0;
        }
        domove(content1,‘left‘,30,30,-540*num,function()
        {
            for( var i = 0; i < abull1.length; i++)
            {
                abull1[i].style.background = ‘#fff‘;
            }
            abull1[num].style.background = ‘#999‘;
        })
    }

};
</script>

</head>

<body>
<div id="wrap">
    <ul id="tabs">
        <li>新品</li>
        <li>极客</li>
    </ul>
    <div id="new" style="display:block;">
        <div class="left">
            <img src="img/5-16.jpg">
            <p>枫叶</p>
        </div>
        <div class="showbox">
            <ul>
                <li>
                <img src="img/5-1.jpg">
                <h2>图片一</h2>
                <p>图片介绍图片介绍图片介绍</p>
                </li>
                <li>
                <img src="img/5-2.jpg">
                <h2>图片二</h2>
                <p>图片介绍图片介绍图片介绍</p>
                </li>
                <li>
                <img src="img/5-3.jpg">
                <h2>图片三</h2>
                <p>图片介绍图片介绍图片介绍图片介绍</p>
                </li>
                <li>
                <img src="img/5-4.jpg">
                <h2>图片四</h2>
                <p>图片介图片介绍图片介绍绍</p>
                </li>
                <li>
                <img src="img/5-5.jpg">
                <h2>图片五</h2>
                <p>图片介绍图片介绍图片介绍</p>
                </li>
                <li>
                <img src="img/5-6.jpg">
                <h2>图片六</h2>
                <p>图片介绍图片介绍图片介绍图片介绍</p>
                </li>
                <li>
                <img src="img/5-7.jpg">
                <h2>图片七</h2>
                <p>图片介绍图片介绍图片介绍图片介绍图片介绍</p>
                </li>
                <li>
                <img src="img/5-8.jpg">
                <h2>图片八</h2>
                <p>图片介图片介绍图片介绍图片介绍绍</p>
                </li>
                <li>
                <img src="img/5-9.jpg">
                <h2>图片九</h2>
                <p>图片介绍图片介绍图片介绍图片介绍</p>
                </li>
            </ul>
        </div>
        <ul class="nav">
            <li class="lf"><</li>
            <li class="rt">></li>
        </ul>
        <ul class="bullets">
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    <div id="geek" style="display:none;">
        <div class="left">
            <img src="img/5-15.jpg">
            <p>枫叶</p>
        </div>
        <div class="showbox">
            <ul>
                <li>
                <img src="img/5-6.jpg">
                <h2>图片六</h2>
                <p>图片介绍图片介绍图片介绍</p>
                </li>
                <li>
                <img src="img/5-7.jpg">
                <h2>图片七</h2>
                <p>图片介绍图片介绍图片介绍</p>
                </li>
                <li>
                <img src="img/5-8.jpg">
                <h2>图片八</h2>
                <p>图片介绍图片介绍图片介绍图片介绍</p>
                </li>
            </ul>
        </div>
        <ul class="nav">
            <li class="lf"><</li>
            <li class="rt">></li>
        </ul>
        <ul class="bullets">
            <li class="active"></li>
        </ul>
    </div>

</div>
</body>
</html>
function getstyle(obj,attr)
{
    return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr];
}

function domove (obj,attr,step,frequency,target,endfn)
{
    step = parseInt(getstyle(obj,attr))<target?step:-step;
    clearInterval(obj.timer);
    obj.timer = setInterval( function ()
    {
        var speed = parseInt(getstyle(obj,attr)) + step;
        if(step>0&&speed>target||step<0&&speed<target)
        {
            speed = target;
        }
        obj.style[attr] = speed + ‘px‘;
        if( speed == target )
        {
            clearInterval(obj.timer);
            endfn&&endfn();
        }
    },frequency);
};

function opacity(obj,step,target,frequency,endfn)
{
    var currentOpacity = getstyle(obj,‘opacity‘) * 100;
    step = currentOpacity < target?step:-step;
    clearInterval(obj.opacity)
    obj.opacity = setInterval (function ()
    {
        currentOpacity = getstyle(obj,‘opacity‘) *100;
        var nextOpacity = currentOpacity + step;
        if(step>0&& nextOpacity>target || step<0&& nextOpacity < target )
        {
            nextOpacity = target;
        }
    obj.style.opacity = nextOpacity/100;
    obj.style.filter = ‘alpha(opacity:)‘ + nextOpacity +‘)‘;
    if(nextOpacity == target )
    {
        clearInterval(obj.opacity);
        endfn&&endfn();
    }
    },frequency);

};

function shake(obj,attr,endfn)
{
    if( obj.shaked ) { return;  }
    obj.shaked = true;

    var num = 0;
    var timer = null;
    var arr = [];
    var pos = parseInt(getstyle(obj,attr));

    for( var i = 20; i > 0; i-=2 )
    {
        arr.push(i,-i);
    }
    arr.push(0);

    clearInterval(obj.shake);
    obj.shake = setInterval(function ()
    {
        obj.style[attr] = pos + arr[num] +‘px‘;
        num++;
        if(num==arr.length)
        {
            clearInterval(obj.shake);
            endfn&&endfn();
            obj.shaked = false;
        }
    },50);
};
时间: 2024-11-25 17:58:22

新浪数码轮播的相关文章

N年前Nginx负载均衡在新浪播客中的应用

2008年的新浪播客由静态服务器集群和动态服务器集群两部分组成,静态服务器集群采用Squid做前端缓存,动态服务器也称接口服务器,主要用来实现显示播放数,记录播放日志等等. 接口服务器上采用F5 BIG-IP硬件四/七层负载均衡交换机,对4台Nginx反向代理服务器进行四层负载均衡,由这四台nginx服务器判断 URL,进行分组,对后端3组web服务器进行七层负载均衡. F5 BIG-IP后端的3组web服务器,配置不一样,第一组内存密集型,技术主要是PHP+Mencache服务: 第2组为 C

关于轮播图兼容的问题

首先swiper3 作为移动端,用来做轮播图的插件最合适不过了.但是swiper3 作为移动端的首选,它是不支持ie8的.这个时候我们需要使用一些兼容的东西.swiper2是能够兼容ie8的.但是分页器.不能很好的兼容. 2.我们可以使用原生的方式来做一些兼容.下面是我使用的一些方法.进攻参考. <script src="https://cdn.bootcss.com/jquery/1.11.1/jquery.js"></script> <style>

横冲直撞vue(第四篇):v-model、指令系统总结、指令系统示例轮播图实现、指令系统示例跑马灯效果实现、在vue中使用样式的方式

一. v-model v-model 指令在表单 <input>.<textarea> 及 <select> 元素上创建双向数据绑定.它会根据控件类型自动选取正确的方法来更新元素. 尽管有些神奇,但v-model本质上不过是语法糖.它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理. v-model在内部为不同的输入元素使用不同的属性并抛出不同的事件: text 和 textarea 元素使用 value 属性和 input 事件: checkbox

新浪分享 Insufficient app permissions!

简介 我们在使用新浪分享的时候,可能会遇到很多问题. 比如: java.lang.Throwable: {"error":"{\"error\":\"Insufficient app permissions!\",\"error_code\":10014,\"request\":\"\/2\/statuses\/upload_url_text.json\"}",&qu

Android使用ViewPager做轮播

ViewPager.html div.oembedall-githubrepos { border: 1px solid #DDD; list-style-type: none; margin: 0 0 10px; padding: 8px 10px 0; font: 13.34px/1.4 helvetica, arial, freesans, clean, sans-serif; width: 452px; background-color: #fff } div.oembedall-git

JQ 图片轮播并封装

利用面向对象自己动手写了一个封装好的jquery轮播对象,可满足一般需求,需要使用时只需调用此对象的轮播方法即可. demo:https://github.com/zsqosos/shopweb 具体代码如下: HTML结构: 1 <div class="banner" id="J_bg_ban"> 2 <ul> 3 <li><a href="#"><img src="banner_

UIScrollView实现图片轮播器及其无限循环效果

图片轮播器: 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; 5 /** 6 * 页码 7 */ 8 @prop

图片轮播逻辑

// //  ViewController.m // 图片轮播 // //  Created by apple on 14-5-18. //  Copyright (c) 2014年  All rights reserved. // #import "ViewController.h" @interface ViewController () <UIScrollViewDelegate> @property (weak, nonatomic) IBOutlet UIScro

UISCrollView —— 图片轮播器实现(三)——(第二讲)

1. 所用知识点 1> UIScrollView的基本属性,和UIPageControl设置,还有就是要用到NSTimer来定时实现UIScrollView的图片轮播 2> NSTimer简单介绍: 2.1  NSTimer叫做“定时器”,它的作用如下 * 在指定的时间执行指定的任务 * 每隔一段时间执行指定的任务 2.2  NSTimer简单使用: 1> 调用下面的方法就会开启一个定时任务 + (NSTimer *)scheduledTimerWithTimeInterval:(NST