Home  >  Article  >  Web Front-end  >  Create menu navigation effect based on css3 attribute transition

Create menu navigation effect based on css3 attribute transition

不言
不言Original
2018-07-02 10:57:481513browse

This article mainly introduces the creation of menu navigation effects based on css3 attribute transition, which can realize the function of dynamically changing the background slider when the mouse slides over menu items. The implementation of attribute transition based on css3 is of great practical value and is needed. Friends can refer to

. This article describes the example of creating a menu navigation effect based on css3 attribute transition. Share it with everyone for your reference. The details are as follows:

CSS3 navigation menu, when your motion layer is below the display layer, the transition will cause the page to flicker. The reason is a bug generated by Chrome when it initially renders the CSS animation. Although this problem cannot be verified for the time being. The root cause, but there are currently two known solutions:

-webkit-backface-visibility: hidden; (Set whether the back side of the converted element is visible when facing the user: hidden)

-webkit-transform-style: preserve-3d; (Set how embedded elements are rendered in 3D space: preserve 3D).

The screenshot of the running effect is as follows:

The specific code is as follows:

<!DOCTYPE HTML>
<html lang=zh-cn>
<head>
<title>css3的属性transition制作菜单导航</title>
<style>
*{margin:0px;padding:0px;}
body{background:#45B5DA;margin:0px;padding:0px;}
.tips{width:370px;margin:0 auto;line-height:24px;padding-top:10px;}
.bredcolor{color:#fff;}
#nav{position:absolute;top:50%;left:50%;margin-top:-20px;margin-left:-185px;}
li{
  width:74px;height:40px;text-align:center;float:left;line-height:40px;color:#fff;text-decoration:none;list-style:none;cursor : pointer;
}
li#chage{
  width:70px;height:38px;display:block;position:absolute;left:0px;z-index:-1;border:2px solid #191919;
  border-radius:10px;
  background:-webkit-gradient(linear, 0 100%, 0 0, from(black), color-stop(0.5, black), color-stop(0.52,#313131), to(#6A6A6A));
  box-shadow:0px 2px 0px rgba(255, 255, 255, .3);
  -webkit-transform: translate(0px,0px);
  -webkit-transition:-webkit-transform .2s ease-out;
}
</style>
</head>
<body>
<section class="tips">
  当你运动层在显示层下面时,transition会使页面产生闪动,原因是Chrome在初始渲染CSS动画时产生的Bug,虽然暂时无法考证这个问题的根本原因,但是目前已知的解决方案有两条:
  -webkit-backface-visibility: hidden;(设置进行转换的元素的背面在面对用户时是否可见:隐藏)
  -webkit-transform-style: preserve-3d; (设置内嵌的元素在 3D 空间如何呈现:保留 3D )
  qq群:197326136
</section>
<section id="nav">
  <li href="#" title="css3菜单,css3菜单导航">首页</li>
  <li href="#" class="nav_2" onmouseover = "zhj.slide(1);" onmouseout = "zhj.slide(0);">脚本</li>
  <li href="#" onmouseover = "zhj.slide(2);" onmouseout = "zhj.slide(0);">特效</li>
  <li href="#" onmouseover = "zhj.slide(3);" onmouseout = "zhj.slide(0);">源码</li>
  <li href="#" onmouseover = "zhj.slide(4);" onmouseout = "zhj.slide(0);">下载</li>
  <li href="javascript:void(0);" id="chage"></li>
</section>
</body>
<script type="text/javascript">
  function $(id){
    return typeof id === "string" ? document.getElementById(id) : id;
  }
  var zhj = {};
  zhj.slide = function(index){
    var transX = 74*index;
    $(&#39;chage&#39;).style[&#39;-webkit-transform&#39;] = &#39;translate(&#39;+transX+&#39;px,0px)&#39;;
  }
</script>
</html>

The above is the entire content of this article, I hope it will be useful for everyone's learning For help, please pay attention to the PHP Chinese website for more related content!

Related recommendations:

Analysis of transform transformation model rendering in CSS3

css gradient color omission mark embedded font text shadow A comprehensive introduction to

The above is the detailed content of Create menu navigation effect based on css3 attribute transition. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn