js实现翻牌效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#container {
width: 200px;
height: 200px;
}
.card{
width: 100%;
height:100%;
margin: 0 auto;
overflow: hidden;
}
.card_a{
background-color: red;
}
.card_b{
background-color: blue;
display: none;
}
</style>
</head>
<body>
<div id="container">
<div class="card card_a">A</div>
<div class="card card_b">B</div>
</div>
<script src="main.js"></script>
</body>
</html>
/**
* Created by Administrator on 2016/8/9.
*/
(function () {
var cardA = document.querySelector("#container .card_a");
var cardB = document.querySelector("#container .card_b");
var container = document.querySelector("#container");
var playing = false;
var aVisible = false; function showA() {
if (!aVisible) {
cardA.style.display = "block";
cardB.style.display = "none";
aVisible = true;
}
} function showB() {
if (aVisible) {
cardA.style.display = "none";
cardB.style.display = "block";
aVisible = false;
}
} function turnFromTo(from, to) {
if (!playing) {
playing = true;
var widthPrecent = 100;
var speed = widthPrecent / 20;
var id = setInterval(function () {
widthPrecent -= speed;
from.style.width = widthPrecent + "%";
if (widthPrecent <= 0) {
clearInterval(id);
if (aVisible) {
showB();
} else {
showA();
}
to.style.width = "0";
id = setInterval(function () {
widthPrecent += speed;
if (widthPrecent >= 100) {
widthPrecent = 100 + "%";
clearInterval(id);
playing = false;
}
to.style.width = widthPrecent + "%";
}, 20);
}
}, 20);
}
} function turnToA() {
turnFromTo(cardB, cardA);
} function turnToB() {
turnFromTo(cardA, cardB);
} function init() {
showA();
container.onclick = function (event) {
if (aVisible) {
turnToB();
}
else {
turnToA();
}
}
} init();
})();
js实现翻牌效果的更多相关文章
- 使用JS与CSS3的翻转实现3D翻牌效果
之前我们有讨论过使用CSS3如何实现网页水平翻转的效果,而这次我们介绍的是翻转效果更深一层的应用——3D翻牌效果. 这里我们需要使用flip中轴翻转实现,又因为是3D效果,如果希望呈现一定的3D视角, ...
- css3之3D翻牌效果
最近一直在学css3,发现他真的是越来越牛逼.现在的css3已经不在是以前的css了,它能做出的功能效果是我们没法想象的了.它可以实现flash,可以制作一些js能做出来的效果,还可以写出ps做出 ...
- jQuery精仿手机上的翻牌效果菜单
代码简介: jQuery精仿手机上的翻牌效果菜单,很平滑的动画翻牌效果,每点击一下菜单,就会翻去一下,貌似很灵敏的动作.注意:如果预览时没看到效果,请刷新一下页面,让jquery载入就行了,在实际使用 ...
- 【JQuery插件】扑克正反面翻牌效果
里面有两个demo,支持X横向和Y纵向翻转两个效果. 对元素的布局有一定的讲究,需要分析一下demo的css. 默认翻转速度为80,不要大于100ms. <!DOCTYPE> <ht ...
- React.js实现原生js拖拽效果及思考
一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖 ...
- 用js实现动画效果核心方式
为了做好导航菜单,有时候需要在菜单下拉的时候实现动画效果,所以这几天就研究了研究如何用js实现动画效果,实现动画核心要用到两个函数,一个是setTimeOut,另一个是setInterval. 下边我 ...
- js拖拽效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 原生JS实现分页效果2.0(新增了上一页和下一页,添加当前元素样式)
虽然写的很烂,但至少全部都是自己写的,因为这个没有固定的顺序,所以就没有封装,如果你技术好的话,可以你写的分享给我,谢谢. <!DOCTYPE html><html lang=&qu ...
- 原生JS实现分页效果1.0
不太完整,写的太急,等等加上完整注释,写起来还是有些难度的,写的有点水,后面再改进改进. <!DOCTYPE html><html lang="en">&l ...
随机推荐
- 我的Android进阶之旅------>Android疯狂连连看游戏的实现之游戏效果预览(一)
今天看完了李刚老师的<疯狂Android讲义>一书中的第18章<疯狂连连看>,从而学会了如何编写一个简单的Android疯狂连连看游戏. 开发这个流行的小游戏,难度适中,而且能 ...
- 如何下载symfony
php -r "readfile('https://symfony.com/installer');" > symfony 可能无法下载,:那么你检查一下你的php.ini找 ...
- 阿里云服务(一) OSS
阿里电子商务迄今是中国最大的电商网站,各个厂商都在去模仿.就像google的大数据处理,Hadoop的思想等等,只有做出了一些成绩,起了带头羊,那么将会是非常吃香的.从今天开始简单学习了解一下阿里的各 ...
- html ---- web sql 例子
<!doctype html> <html> <head> <meta charset="utf-8"> <script> ...
- ubuntu android studio 编译及运行错误Error retrieving parent for item: No resource found that matches the given name
安装好android studio并且安装其它需要的SDK或组件后,根据向导生成新的项目, 编译或运行时可能会出现下面的错误: Error:Error retrieving parent for it ...
- js之语句的一些需要注意的事情
1.delete运算符是用来删除一个对象的 属性,但有一点需要注意:使用var声明的变量虽为全局变量,单不是全局对象的属性,不可以用delete删除,而不用var直接声明的全局变量而直接赋值的为全局对 ...
- [原创]java WEB学习笔记02:javaWeb开发的目录结构
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- HDU2544最短路模板,
#include<iostream> #include<stdio.h> #include<stdlib.h> #include<algorithm> ...
- Vue 5小时学习小教程
Vue Vue Vue 起步 指令 v-bind v-if v-for v-on v-model v-bind和v-on缩写 搭建Vue开发环境 vue项目结构 Vue开始 数据绑定, 绑定属性 循环 ...
- Spring Cloud之Zuul网关集群
Nginx+Zuul 一主一备 或者 轮训多个 在微服务中,所有服务请求都会统一到Zuul网关上. Nginx 配置: #user nobody; worker_processes 1; #error ...