Scrollable Content Div with jQuery (WIP)
Enhancements
by Rishabh Sharma
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script>
<script src="https://use.fontawesome.com/d008e6c4be.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<div id="slide-scroll-container">
<p id="slide-scroll-content">a quick asdasdasdasasdasdasasdaasdasdsddas</p>
<i id="slide-scroll-left" class="fa fa-chevron-left" aria-hidden="true"></i>
<i id="slide-scroll-right" class="fa fa-chevron-right" aria-hidden="true"></i>
</div>
CSS
#slide-scroll-container {
position: relative;
background-color: #C0EB8F;
width: 250px;
height: 30px;
overflow: hidden;
white-space: nowrap;
}
#slide-scroll-content {
margin: 0;
position: absolute;
top: 10%;
}
#slide-scroll-left,
#slide-scroll-right {
margin: 0;
font-size: 18px;
cursor: pointer;
position: absolute;
top: 0;
background-color: rgba(192, 235, 143, 1);
color: rgb(170, 170, 170);
padding: 6px 2px;
}
#slide-scroll-left {
left: 0;
}
#slide-scroll-right {
right: 0;
}
JavaScript
function slideScroll() {
// default setting
var slideSpeed = 150;
var containerOffset = $("#slide-scroll-container").offset();
var contentOffset = $("#slide-scroll-content").offset();
var containerWidth = $("#slide-scroll-container").width();
var contentWidth = $("#slide-scroll-content").width();
var object = {};
object.render = function() {
$("#slide-scroll-left").hide();
$("#slide-scroll-right").hide();
if (contentWidth > containerWidth) {
$("#slide-scroll-right").fadeIn();
}
$("#slide-scroll-left").mousedown(function() {
var contentOffset = $("#slide-scroll-content").offset();
$("#slide-scroll-content").animate({
left: 0
}, function callback() {
$("#slide-scroll-left").fadeOut();
});
});
$("#slide-scroll-right").mousedown(function() {
var contentOffset = $("#slide-scroll-content").offset();
$("#slide-scroll-left").fadeIn();
$("#slide-scroll-content").animate({
left: contentOffset.left - slideSpeed
});
});
return object;
};
// getter and setter methods
object.slideSpeed = function(value) {
if (!arguments.length) {
return slideSpeed;
}
slideSpeed = value;
return object;
}
return object;
}
slideScroll().slideSpeed(150).render();