图1
图2
图3
家好,今天要跟大家分享的是当鼠标滑过时”图文动态显示“效果的CSS实现方法,下面我们来看下效果图:
相对前几期的内容今天的教程比较简单,主要知识点还是CSS3中关于动画属性的使用,从效果图中可以看出就是一个简单的上下移动,因此用到的还是是移动属性translate。
该示例主要有四个主体部分,每一部又是由图片和文字信息两部分组成,其中文字信息中含有一个标题一段文字和一个超链接,因此HTML结构可如下设置:
box-sizing: border-box;主要是为了后面给文字信息部分添加样式(如:添加边框边距)时父元素的尺寸不受影响。
主要设置overflow:hidden;用来隐藏向上移动时图片溢出部分。
这里主要注意一点,图片的position为relative而文字信息部分的position为absolute。
这里不多赘述,根据个人喜好随便搞。
在此处需要先把文本信息部分向下移动100%的身位【translateY(100%)】配合上面的overflow:hidden实现隐藏,然后为图片和文本信息部分分别添加鼠标滑过时的动态效果,分别向上移动一定的距离,最后为每个动画都添加一个0.4秒的过渡时间transition:transform 0.4s即可。
易拖拽
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
#div1 {width:200px; height:200px; background:red; position:absolute;}
</style>
<script>
window.onload=function ()
{
var oDiv=document.getElementById('div1');
var disX=0;
var disY=0;
oDiv.onmousedown=function (ev)
{
var oEvent=ev||event;
disX=oEvent.clientX-oDiv.offsetLeft; //拖拽距离
disY=oEvent.clientY-oDiv.offsetTop; //拖拽距离
oDiv.onmousemove=function (ev)
{
var oEvent=ev||event;
oDiv.style.left=oEvent.clientX-disX+'px';
oDiv.style.top=oEvent.clientY-disY+'px';
};
oDiv.onmouseup=function ()
{
oDiv.onmousemove=null;
oDiv.onmouseup=null;
};
};
};
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
程序问题:鼠标拖拽过快,鼠标指针与拖拽div对象脱离
解决方法:直接给document加事件(因为div对象范围太小,鼠标移动就与拖拽div对象脱离)
将oDiv改成document对象
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
#div1 {width:200px; height:200px; background:red; position:absolute;}
</style>
<script>
window.onload=function ()
{
var oDiv=document.getElementById('div1');
var disX=0;
var disY=0;
oDiv.onmousedown=function (ev)
{
var oEvent=ev||event;
disX=oEvent.clientX-oDiv.offsetLeft;
disY=oEvent.clientY-oDiv.offsetTop;
document.onmousemove=function (ev)
{
var oEvent=ev||event;
oDiv.style.left=oEvent.clientX-disX+'px';
oDiv.style.top=oEvent.clientY-disY+'px';
};
document.onmouseup=function ()
{
document.onmousemove=null;
document.onmouseup=null;
};
};
};
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
程序问题: FF下,空Div拖拽Bug(残影)
解决方法: 阻止默认事件
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
#div1 {width:200px; height:200px; background:red; position:absolute;}
</style>
<script>
window.onload=function ()
{
var oDiv=document.getElementById('div1');
var disX=0;
var disY=0;
oDiv.onmousedown=function (ev)
{
var oEvent=ev||event;
disX=oEvent.clientX-oDiv.offsetLeft;
disY=oEvent.clientY-oDiv.offsetTop;
document.onmousemove=function (ev)
{
var oEvent=ev||event;
oDiv.style.left=oEvent.clientX-disX+'px';
oDiv.style.top=oEvent.clientY-disY+'px';
};
document.onmouseup=function ()
{
document.onmousemove=null;
document.onmouseup=null;
};
return false; //阻止默认事件(拖动残影)
};
};
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
防止拖出页面
*请认真填写需求信息,我们会在24小时内与您取得联系。