Auto scrolling with CSS

2019-01-24 15:13发布

问题:

In my website [based on wordpress] , I have a project slider (technically image with some text) . But that slider is not auto scrolling , there is a button for sliding left and right .

http://i47.tinypic.com/97uxz4.jpg

I want to remove that button and make it sliding auto . I don't want use any javascript . I want to accomplish with CSS . Is it possible if yes then how ?

If it is not possible what is the shortest possible solution to do this , Here is my working site

http://aniyanetworks.net/Blog

回答1:

1.) You can't initiate DOM actions with CSS or pure HTML. You always need a manipulating language (like JavaScript)

2.) You can remove the buttons by overwriting the current CSS and adjust the visibility or display tag to render them away or (placeholding) invisible.

In the end you really need JavaScript for this to trigger dynamic hiding and to make the automatic slide happen with setIntervals.

Edit:

This might be something for you to work with animating the slider:

#container {
    	height: 200px;
    	width: 800px;
    	border: 1px solid #333;
    	overflow: hidden;
    	margin: 25px auto;
    }
    
    #box {
    	background: orange;
    	height: 180px;
    	width: 400px;
    	margin: 10px -400px;
    	-webkit-animation-name: move;
    	-webkit-animation-duration: 4s;
    	-webkit-animation-iteration-count: infinite;
    	-webkit-animation-direction: right;
    	-webkit-animation-timing-function: linear;
    }
    
    #box:hover {
    	-webkit-animation-play-state: paused;
    }
    
    @-webkit-keyframes move {
    	0% {
    		margin-left: -400px;
    	}
    	100% {
    		margin-left: 800px;
    	}
    }
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="utf-8">
    	<title>HTML</title>
    	<link rel="stylesheet" href="main2.css" type="text/css" />
    </head>
    <body>
    	<div id="container">
    		<div id="box">as</div>
    	</div>
    </body>
    </html>

Result

This is the WebKit-only version. These are the equivalents for other browsers:

The @ keyframes:

@-moz-keyframes move {
@-o-keyframes move {
@keyframes move {

Inside #box (only one property shown as example):

-moz-animation-name: move;
-o-animation-name: move;
animation-name: move;


回答2:

Here is an example (Fiddle) of using animations. You could apply this to your .post-list:

.post-list {
    animation: slide infinite 3s alternate;
}

@keyframes slide {
  0% {
    margin-left: 0px;
  }
  50% {
    margin-left: -100px;
  }
  100% {
    margin-left: -200px;
  }
}

To disable the animation on hover, use:

.post-list:hover {
    animation-play-state: paused;
}

Don't forget the vendor prefixes (-webkit-... and so on) like in Allendars answer.

But of course you'll have to play around. This should just be a hint of how it could work.



回答3:

You can't be able to do much animation with css. JavaScript is the way to go. I'm also trying to get the hang of it... Goodluck to you.