问题描述
我正在尝试构建水平小时槽查看器。到目前为止,我找到了我需要的东西,但几个月后: https://codepen.io/rsschouwenaar/pen/vOodgO
这是代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>The HTML5 Herald</title>
<meta name="description" content="The HTML5 Herald">
<meta name="author" content="SitePoint">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://momentjs.com/downloads/moment.js"></script>
</head>
<body>
<div id="timetable" class="clearfix">
<div class="timetable_content">
<ul class="hours clearfix">
<li data-hour="00">00:00</li>
<li data-hour="01">01:00</li>
<li data-hour="02">02:00</li>
<li data-hour="03">03:00</li>
<li data-hour="04">04:00</li>
<li data-hour="05">05:00</li>
<li data-hour="06">06:00</li>
<li data-hour="07">07:00</li>
<li data-hour="08">08:00</li>
<li data-hour="09">09:00</li>
<li data-hour="10">10:00</li>
<li data-hour="11">11:00</li>
<li data-hour="12">12:00</li>
<li data-hour="13">13:00</li>
<li data-hour="14">14:00</li>
<li data-hour="15">15:00</li>
<li data-hour="16">16:00</li>
<li data-hour="17">17:00</li>
<li data-hour="18">18:00</li>
<li data-hour="19">19:00</li>
<li data-hour="20">20:00</li>
<li data-hour="21">21:00</li>
<li data-hour="22">22:00</li>
<li data-hour="23">23:00</li>
<li data-hour="00">00:00</li>
</ul>
<ul class="timeslots">
<li>
<span class="timeslot" data-hour-start="18" data-hour-end="19">BDO</span>
<span class="button"></span>
</li>
<!-- <li>
<span class="timeslot" data-date-start="2015-10-10" data-date-end="2016-2-12">BDO</span>
<span class="button"></span>
</li>
<li>
<span class="timeslot" data-date-start="2015-12-10" data-date-end="2016-2-12">BDO</span>
<span class="button"></span>
</li>
<li>
<span class="timeslot" data-date-start="2015-09-10" data-date-end="2016-7-12">BDO</span>
<span class="button"></span>
</li>
<li>
<span class="timeslot" data-date-start="2015-1-10" data-date-end="2015-3-12">BDO</span>
<span class="button"></span>
</li> -->
</ul>
</div>
</div>
</body>
<style type="text/css">
#timetable {
width: 100%;
height: auto;
max-width: 768px;
overflow-y: hidden;
border: 1px solid #ccc;
}
#timetable ul {
padding-left: 0;
list-style: none;
margin: 0 0 0 0;
}
#timetable .timetable_content {
width: 1024px;
}
.hours {
max-height: 50px;
overflow: hidden;
}
.hours li {
width: 110px;
text-align: center;
float: left;
display: inline-block;
border-right: 1px solid #ccc;
padding: 1em;
}
.timeslots li {
border-top: 1px solid #ccc;
}
.timeslots .timeslot {
background: lightblue;
display: inline-block;
}
.clearfix:after {
content: "";
display: table;
clear: both;
}
</style>
<script>
(function() {
var firstHoursLiElWidth = $('.hours li:first').innerWidth();
var hoursItems = 0;
$('.hours li').each(function(index) {
hoursItems += firstHoursLiElWidth;
});
$('.hours,.timeslots,.timetable_content').width(hoursItems);
console.log('<================== start slots =============================>');
$('.timeslots li').each(function(index) {
var element = $(this).children('span.timeslot'),startDate = element.data().hourStart,endDate = element.data().hourEnd,startHourAmountHoursInDay = 24,endHourAmountHoursInDay = 24;
var startDateMoment = startDate
var endDateMoment = endDate
var startDateHour = parseInt(startDateMoment,10);
var endDateHour = parseInt(endDateMoment,10);
var hoursInProject = (endDateHour - startDateHour) * 60;
console.log('startDate: ',startDate);
console.log('endDate: ',endDate);
console.log('hoursInProject: ',hoursInProject);
console.log('startMonthAmountDaysInMonth: ',startHourAmountHoursInDay);
console.log('endMonthAmountDaysInMonth: ',endHourAmountHoursInDay);
console.log('Hours',startDateHour + ' & ' + endDateHour);
console.log('startDateHour: ' + startDateHour);
console.log('endDateHour:' + endDateHour);
var startDateEl = $(".hours li[data-hour='" + startDateHour + "']").offset().left - 10;
var endDateEl = $(".hours li[data-hour='" + endDateHour + "']").offset().left;
var endDateElEnd = endDateEl;
var timeSlotWidth = endDateElEnd - startDateEl;
var pixelsPerHour = (Math.round(firstHoursLiElWidth / startHourAmountHoursInDay) * hoursInProject + 'px');
console.log('Month start: ',startDateEl);
console.log('pixelsPerHour: ',pixelsPerHour);
console.log('Month end: ',endDateEl);
console.log('Day end: ',endDateEl);
console.log('Element length: ',timeSlotWidth);
element.css('margin-left',startDateEl);
element.width(pixelsPerHour);
console.log('=============================');
});
})();
</script>
</html>
这个例子有两个问题:
- 我需要纯 JavaScript,而不是 jQuery。
- 我需要几个小时(一天中的所有时间),而不是几个月。
这是我目前所做的:
https://codepen.io/orassayag/pen/poeKVYq
这是我的代码:
@Test
fun testAssert(){
assertEquals(1,2)
}
到目前为止,我尝试将其转换为小时数,但我无法使其正常工作,无论我做什么,小时数都与插槽不匹配。有人能帮我吗? 谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)