jquery的浪漫(跑马灯 + 雪花飘落)
jquery的浪漫
主要用到知识点:
- 鼠标事件onmousedown() onmousemove() onmouseup()
- jquery的运用,对dom元素的增删改查
- css3 3d 功能的灵活运用
实现的功能
- 跑马灯效果 文字自动输入 雪花飘落 鼠标点击 滑动生成雪花 背景音乐等
- 看效果

html:
<div class="text">
<marquee behavior="alternate">时光不老,我们不散</marquee>
</div>
<div class="box">
<div class="pic">
<ul>
<li><img src="./img/1.jpg" alt=""></li>
<li><img src="./img/1.jpg" alt=""></li>
<li><img src="./img/1.jpg" alt=""></li>
<li><img src="./img/1.jpg" alt=""></li>
<li><img src="./img/1.jpg" alt=""></li>
<li><img src="./img/1.jpg" alt=""></li>
</ul>
</div>
</div>
<div class="text1"></div>
<audio
src="http://www.170mv.com/kw/other.web.rh01.sycdn.kuwo.cn/resource/n1/59/88/1388628737.mp3"
autoplay
loop
></audio>
css:
*{
margin: 0;
padding: 0;
list-style: none;
}
html,body{
width: 100%;
height: 100%;
position: relative;
cursor: pointer;
}
.wraper{
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.9);
}
.text,.text1{
width:500px;
margin: 0 auto;
color: #fff;
font-size: 30px;
}
.text1{
color: rgba(19, 128, 230, 0.849);
}
.box{
width: 500px;
height: 300px;
margin: 150px auto;
perspective: 800px;
perspective-origin: 50% 50%;
}
.box .pic{
width: 500px;
height: 300px;
transform-style: preserve-3d;
animation: play 10s linear infinite;
position: relative;
}
.pic ul li{
border-radius: 5px;
width: 300px;
height: 300px;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: auto;
transition: transform 0.2s ease-in;
}
.pic ul li img{
width:100%;
height:100%;
}
.pic ul li:nth-child(1){
transform: rotateY(0deg) translateZ(150px);
}
.pic ul li:nth-child(2){
transform: rotateY(90deg) translateZ(150px);
}
.pic ul li:nth-child(3){
transform: rotateY(180deg) translateZ(150px);
}
.pic ul li:nth-child(4){
transform: rotateY(270deg) translateZ(150px);
}
.pic ul li:nth-child(5){
transform: rotateX(90deg) translateZ(150px);
}
.pic ul li:nth-child(6){
transform: rotateX(-90deg) translateZ(150px);
}
.box:hover .pic ul li:nth-child(1){
transform: rotateY(0deg) translateZ(250px);
}
.box:hover .pic ul li:nth-child(2){
transform: rotateY(90deg) translateZ(250px);
}
.box:hover .pic ul li:nth-child(3){
transform: rotateY(180deg) translateZ(250px);
}
.box:hover .pic ul li:nth-child(4){
transform: rotateY(270deg) translateZ(250px);
}
.box:hover .pic ul li:nth-child(5){
transform: rotateX(90deg) translateZ(250px);
}
.box:hover .pic ul li:nth-child(6){
transform: rotateX(-90deg) translateZ(250px);
}
@keyframes play{
0%{
transform:rotateX(0deg) rotateY(0deg);
}
100%{
transform: rotateX(360deg) rotateY(360deg);
}
}
js:
var text = document.getElementsByClassName('text1')[0];
window.onload = function(){
var str = '悠悠岁月之间我心永远不变,纵使沧海桑天爱你至到永远,我不在乎昨天更无所谓明天,抛开世间一切,唯独对你的思念一生一世海枯石烂!'
var i = 0;
var timer = setInterval(function(){
text.innerHTML +=str.charAt(i);
i++;
if(i >str.length){
i = 0;
text.innerHTML = ''
}
},150)
//雪花效果
var xh = '❉'
var minSize = 5;
var maxSize = 50;
var time = 100;
var color = "#fff";
var boxW = $(window).width();
var boxH = document.body.clientHeight;
var div = $('<div></div>').css({
'position':'absolute',
'top':'0px'
}).html(xh);
var timer1 = setInterval(function(){
var size = Math.random()*maxSize + minSize;
var left = Math.random()*boxW;
var opacity = Math.random()*0.8 + 0.3;
var endLeft = Math.random() * boxW;
var endTop = boxH - 100;
var speed = Math.random()*7000 + 3000;
div.clone().appendTo($('body')).css({
'left':left,
'font-size':size,
'opacity':opacity,
'color':color
}).animate({
'top':endTop,
'left':endLeft,
'opacity':'0.1'
}, speed,function(){
$(this).remove();
})
},time)
function cursor(e){
e.preventDefault();
e.stopPropagation();
var size = Math.random() * maxSize + minSize;
var left = e.pageX - size / 2;
var top = e.pageY - size / 2;
var opacity = Math.random() * 0.8 + 0.3;
var endLeft = Math.random() * boxW;
var endTop = boxH - 100;
var speed = Math.random() * 7000 + 3000;
div.clone().appendTo($('body')).css({
'left': left,
'top': top,
'font-size': size,
'opacity': opacity,
'color': color,
'z-index':'100'
}).animate({
'top': endTop,
'left': endLeft,
'opacity': '0.1'
}, speed, function () {
$(this).remove();
})
}
$('body').on('mousedown',function(e){
cursor(e);
$(document).on('mousemove',function(ev){
cursor(ev);
})
$(document).on('mouseup',function(){
$(document).off('mousemove').off('mousedown');
})
})
}
参考自:腾讯课堂渡一教育
jquery的浪漫(跑马灯 + 雪花飘落)的更多相关文章
- jQuery+CSS3文字跑马灯特效
jQuery+CSS3文字跑马灯特效是一款将跑马灯背景制作为3D立方体效果,文字在上面移动时,就像是文字投影到墙壁上,在转角出会改变运动方向. 效果展示 http://hovertree.com/te ...
- jQuery als.js 跑马灯
ali.js是一款滚动插件,滚动的内容可包含文字和图片.它的API也很强大,包括滚动区域可见个数.每次滚动个数.滚动方向.是否循环滚动.是否自动滚动.滚动间隔时间.滚动动画速度.动画效果.滚动方向以及 ...
- jQuery.snowflake雪花飘落插件
一.前言 前言:最近圣诞节来临,需要在页面上应用一个雪花飘落的效果,做之前产品经理给了我网络上的一个demo,地址是http://demo.lanrenzhijia.com/demo/1225/sd/ ...
- jquery.marquee.js - 有点奇怪的跑马灯动画,不过还是加上去了
客户想要一个跑马灯的效果,最终我用了jquery.marquee.js. 这个库很简单就能用. 效果是这样,从左到右,移动速度都不一样. 1. HTML <div class="mar ...
- 用jQuery实现参数自定义的文字跑马灯效果
一,明确需求 基本需求:最近在工作中接到一个新需求,简单来说就是实现一行文字从右到左跑马灯的效果,并且以固定的时间间隔进行循环. 原本这是一个很容易实现的需求,但是难点是要求很多参数得是用户可自行设置 ...
- 个人网站html5雪花飘落代码JS特效下载
如何给自己的网站/页面添加雪花代码.特效呢?有的网站配合自己的主题模板添加雪花飘落效果挺好看的.特别是与冬天季节相关的主题,很多的博客空间都加了雪花的效果.在网上搜索了几种雪花效果,做了简单的修改,在 ...
- jq跑马灯效果
这几天公司产品有个无缝循环滚动的广告跑马灯要做,最开始想到的是<marquee>标签,但在PC端正常,在安卓广告屏上却怎么都跑不动,后来用的css3的animation,结果也是PC端及其 ...
- JavaScript实现文字跑马灯
其实实现文字的跑马灯和实现图片轮播的原理是一样的. 下面是我自己实现的,文字的位置可以随便更改,效果不会变,文字的内容可以通过ajax获取,同时,可以直接用Jquery改写一下,很方便. <!D ...
- 使用 JS 实现文字左右跑马灯
Ø 前言 其实,前面两篇已经基本上实现了图片.文字跑马灯,这里为什么还要学下文字左右跑马灯呢?因为,虽然基本一样,但实现起来还是有很大不同的,所以为了完整再补充一下.代码如下: 1. 首先定义 ...
随机推荐
- ubuntu之路——day15.2 只用python的numpy在底层检验正则化对模型的影响
首先感谢这位博主整理的Andrew Ng的deeplearning.ai的相关作业:https://blog.csdn.net/u013733326/article/details/79827273 ...
- Vue简单归纳
目录 Vue.JS Vue.JS介绍 概述 MVVM模式 示例图 快速入门 事件绑定 什么是事件 单击事件绑定 键盘事件 按键修饰符 鼠标事件 事件修饰符 数据绑定 插值 v-text v-bind ...
- 关于高负载服务器Kernel的ipv4的TCP参数说明及优化
net.ipv4.tcp_mem 内核分配给TCP连接的内存,单位是Page,1 Page = 4096 Bytes,可用命令查看: #getconf PAGESIZE 4096 net.ipv4.t ...
- hdu5387 钟表指针之间夹角(分数计算,模拟)
题意: 给你一个24格式的数字时间,(字符串),问你这个时刻时针与分针 时针与秒针 分针与秒针 之间的夹角, 我们发现 秒针每秒转6度,分针每秒转1/10度,每分转6度,时针每小时转30度,每分转1/ ...
- PyTorch 实战:计算 Wasserstein 距离
PyTorch 实战:计算 Wasserstein 距离 2019-09-23 18:42:56 This blog is copied from: https://mp.weixin.qq.com/ ...
- String字符串与其他格式(int、boolean等八大数据类型)的相互转换
1.(String 转 int)String str = "123"; int a = Integer.parseInt(str);(int 转 String)int a = 5; ...
- [转]npm安装教程
原文地址:https://www.cnblogs.com/lgx5/p/10732016.html 一.使用之前,我们先来掌握3个东西是用来干什么的. npm: Nodejs下的包管理器. webpa ...
- Python3基础 yield send 获得生成器后,需要先启动一次
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- linux升级python到2.7版本
linux的python安装包默认版本是2.6.6,yum程序默认也是依赖这个版本的python包的,但是其他一些程序如nodejs,却要的是2.7版本,因此必须要考虑升级后与yum的兼容问题.两步走 ...
- [译]如何根据Pandas中的列名获取列所在的index位置?
原文来源:https://stackoverflow.com/questions/13021654/get-column-index-from-column-name-in-python-pandas ...