У меня есть слайд-шоу, в котором есть кнопки для следующего и предыдущего (я не использую jquery), и мне нужно превратить мои следующие и предыдущие кнопки в стрелки, и я понятия не имею, с чего начать. Я не мог найти ответ где-нибудь еще для этого.
CSS
.slide {
display:inline-block;
position: relative;
}
.slide img {
display:block;
max-width: 100%;
height: 300px;;
width: 500px;
}
.slide img:hover + .slide-caption {
opacity: 1;
}
.slide-title {
margine:0 0 1rem;
}
.slide-caption {
position: absolute;
right: 0;
bottom: 0;
left: 0;
padding: 1rem;
color: white;
background-color: rgba( 0, 0, 0, 0.5 );
opacity:0;
}
.slide-caption:hover {
opacity: 1;
}
/*div.description {
color:blue;
}*/
div.prev {
text-align: left;
}
div.next {
margin-left:400px;
margin-top:0px;
}
PHP
while ($row = $result->fetch_assoc()) {
$pic_array[$count] = $row['pic_url'];
$titles[$count] = $row['title'];
$descriptions[$count] = $row['description'];
$count++;
}
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_POST['action'] == 'Previous') {
$index = $_POST['i'];
if ($index == 0) {
$index = count($pic_array) - 1;
echo "<div class='slide'>
<img src= ".$dir.$pic_array[$index]." />
<div class='slide-caption'>
<h3 class='slide-title'> $titles[$index] </h3>
<p> $descriptions[$index] </p>
</div>
</div>";
}
else {
$index--;
echo "<div class='slide'>
<img src= ".$dir.$pic_array[$index]." />
<div class='slide-caption'>
<h3 class='slide-title'> $titles[$index] </h3>
<p> $descriptions[$index] </p>
</div>
</div>";
}
echo '<form action="gallery.php" method="post">
<input type="submit" name="action" value="Previous">
<input type="submit" name="action" value="Next">';
echo "<input type='hidden' name='i' value= '$index'' >";
}
if ($_POST['action'] == "Next") {
$index = $_POST['i'];
if ($index == count($pic_array) - 1) {
$index = 0;
echo "<div class='slide'>
<img src= ".$dir.$pic_array[$index]." />
<div class='slide-caption'>
<h3 class='slide-title'> $titles[$index] </h3>
<p> $descriptions[$index] </p>
</div>
</div>";
}
else {
$index++;
echo "<div class='slide'>
<img src= ".$dir.$pic_array[$index]." />
<div class='slide-caption'>
<h3 class='slide-title'> $titles[$index] </h3>
<p> $descriptions[$index] </p>
</div>
</div>";
}
echo '<form action="gallery.php" method="post">
<input type="submit" name="action" value="Previous">
<input type="submit" name="action" value="Next">';
echo "<input type='hidden' name='i' value= '$index' >";}
} else {
$index = 1;
echo "<div class='slide'>
<img src= ".$dir.$pic_array[$index]." />
<div class='slide-caption'>
<h3 class='slide-title'> $titles[$index] </h3>
<p> $descriptions[$index] </p>
</div>
</div>";
echo '<form action="gallery.php" method="post">
<div class="prev">
<input type="submit" name="action" value="Previous">
</div>
<div class="prev">
<input type="submit" name="action" value="Next">
</div>';
echo "<input type='hidden' name='i' value= '$index' >";
/*echo "<div class='description'
<p> $descriptions[$index] </p>
</div>";*/}
Если вы собираетесь продолжать использовать <form>
в качестве основы вашего слайд-шоу, то я предлагаю использовать <button>
вместо <input type="submit">
, Вы получите гораздо больший контроль над тем, что вы визуально представляете пользователю и что отправляется на сервер (так как вы используете <form>
).
По умолчанию <button>
в пределах <form>
будет действовать как кнопка отправки. Кнопки позволяют вам устанавливать содержимое внутри них, что намного более гибко, чем то, что позволяет делать большинство входов.
Следующий фрагмент имеет несколько вариантов.
font-icon
или HTML-сущность в качестве контента.button {
margin: 0;
padding: 0;
border: 0;
background: 0;
}
button img {
display: block;
}
.next {
width: 100px;
height: 25px;
background-image: url( http://placehold.it/100x25 );
background-repeat: no-repeat;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet"/>
<button value="Next">
<i class="fa fa-arrow-right fa-2x"></i>
</button>
<br>
<button value="Next">
<img src="http://placehold.it/100x25">
</button>
<br>
<button class="next" value="Next"></button>
Других решений пока нет …