这是一款CSS按钮鼠标滑过星星闪烁效果。该特效在按钮内部放在一些星星的SVG图形,在鼠标悬停在按钮上面的时候,这些星星以动画的方式出现,非常炫酷。
使用方法
HTML代码
<button>Hover Me <div class="star-1"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 784.11 815.53" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <defs></defs> <g id="Layer_x0020_1"> <metadata id="CorelCorpID_0Corel-Layer"></metadata> <path d="M392.05 0c-20.9,210.08 -184.06,378.41 -392.05,407.78 207.96,29.37 371.12,197.68 392.05,407.74 20.93,-210.06 184.09,-378.37 392.05,-407.74 -207.98,-29.38 -371.16,-197.69 -392.06,-407.78z" class="fil0"></path> </g> </svg> </div> <div class="star-2"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 784.11 815.53" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <defs></defs> <g id="Layer_x0020_1"> <metadata id="CorelCorpID_0Corel-Layer"></metadata> <path d="M392.05 0c-20.9,210.08 -184.06,378.41 -392.05,407.78 207.96,29.37 371.12,197.68 392.05,407.74 20.93,-210.06 184.09,-378.37 392.05,-407.74 -207.98,-29.38 -371.16,-197.69 -392.06,-407.78z" class="fil0"></path> </g> </svg> </div> <div class="star-3"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 784.11 815.53" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <defs></defs> <g id="Layer_x0020_1"> <metadata id="CorelCorpID_0Corel-Layer"></metadata> <path d="M392.05 0c-20.9,210.08 -184.06,378.41 -392.05,407.78 207.96,29.37 371.12,197.68 392.05,407.74 20.93,-210.06 184.09,-378.37 392.05,-407.74 -207.98,-29.38 -371.16,-197.69 -392.06,-407.78z" class="fil0"></path> </g> </svg> </div> <div class="star-4"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 784.11 815.53" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <defs></defs> <g id="Layer_x0020_1"> <metadata id="CorelCorpID_0Corel-Layer"></metadata> <path d="M392.05 0c-20.9,210.08 -184.06,378.41 -392.05,407.78 207.96,29.37 371.12,197.68 392.05,407.74 20.93,-210.06 184.09,-378.37 392.05,-407.74 -207.98,-29.38 -371.16,-197.69 -392.06,-407.78z" class="fil0"></path> </g> </svg> </div> <div class="star-5"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 784.11 815.53" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <defs></defs> <g id="Layer_x0020_1"> <metadata id="CorelCorpID_0Corel-Layer"></metadata> <path d="M392.05 0c-20.9,210.08 -184.06,378.41 -392.05,407.78 207.96,29.37 371.12,197.68 392.05,407.74 20.93,-210.06 184.09,-378.37 392.05,-407.74 -207.98,-29.38 -371.16,-197.69 -392.06,-407.78z" class="fil0"></path> </g> </svg> </div> <div class="star-6"> <svg xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 784.11 815.53" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" version="1.1" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"> <defs></defs> <g id="Layer_x0020_1"> <metadata id="CorelCorpID_0Corel-Layer"></metadata> <path d="M392.05 0c-20.9,210.08 -184.06,378.41 -392.05,407.78 207.96,29.37 371.12,197.68 392.05,407.74 20.93,-210.06 184.09,-378.37 392.05,-407.74 -207.98,-29.38 -371.16,-197.69 -392.06,-407.78z" class="fil0"></path> </g> </svg> </div> </button>
CSS代码
:root{ --color: #95f9fe; } * { margin: 0; padding:0; box-sizing: border-box; } .container { background: #252525; color: #fff; display: flex; align-items: center; justify-content: center; height: 60vh; } button { position: relative; padding: 12px 35px; background: var(--color); font-size: 17px; font-weight: 500; color: #181818; border: 3px solid var(--color); border-radius: 8px; box-shadow: 0 0 0 #fec1958c; transition: all .3s ease-in-out; cursor: pointer; } .star-1 { position: absolute; top: 20%; left: 20%; width: 25px; height: auto; filter: drop-shadow(0 0 0 #fffdef); z-index: -5; transition: all 1s cubic-bezier(0.05, 0.83, 0.43, 0.96); } .star-2 { position: absolute; top: 45%; left: 45%; width: 15px; height: auto; filter: drop-shadow(0 0 0 #fffdef); z-index: -5; transition: all 1s cubic-bezier(0, 0.4, 0, 1.01); } .star-3 { position: absolute; top: 40%; left: 40%; width: 5px; height: auto; filter: drop-shadow(0 0 0 #fffdef); z-index: -5; transition: all 1s cubic-bezier(0, 0.4, 0, 1.01); } .star-4 { position: absolute; top: 20%; left: 40%; width: 8px; height: auto; filter: drop-shadow(0 0 0 #fffdef); z-index: -5; transition: all .8s cubic-bezier(0, 0.4, 0, 1.01); } .star-5 { position: absolute; top: 25%; left: 45%; width: 15px; height: auto; filter: drop-shadow(0 0 0 #fffdef); z-index: -5; transition: all .6s cubic-bezier(0, 0.4, 0, 1.01); } .star-6 { position: absolute; top: 5%; left: 50%; width: 5px; height: auto; filter: drop-shadow(0 0 0 #fffdef); z-index: -5; transition: all .8s ease; } button:hover { background: transparent; color: var(--color); box-shadow: 0 0 25px #fec1958c; } button:hover .star-1 { position: absolute; top: -80%; left: -30%; width: 25px; height: auto; filter: drop-shadow(0 0 10px #fffdef); z-index: 2; } button:hover .star-2 { position: absolute; top: -25%; left: 10%; width: 15px; height: auto; filter: drop-shadow(0 0 10px #fffdef); z-index: 2; } button:hover .star-3 { position: absolute; top: 55%; left: 25%; width: 5px; height: auto; filter: drop-shadow(0 0 10px #fffdef); z-index: 2; } button:hover .star-4 { position: absolute; top: 30%; left: 80%; width: 8px; height: auto; filter: drop-shadow(0 0 10px #fffdef); z-index: 2; } button:hover .star-5 { position: absolute; top: 25%; left: 115%; width: 15px; height: auto; filter: drop-shadow(0 0 10px #fffdef); z-index: 2; } button:hover .star-6 { position: absolute; top: 5%; left: 60%; width: 5px; height: auto; filter: drop-shadow(0 0 10px #fffdef); z-index: 2; } .fil0 { fill: #FFFDEF }