- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
想要在 AngularJS 中相应的“工作日”单元格开始“第一次约会”。
嗨。我正在使用 AngularJS 创建自定义日历和日期选择器。面临一些挑战。
HTML, CSS and Angular Controller and Script below
angular.module('customcal', [])
.controller('customCal', function($scope) {
// we'll use the today object to test in the ng-class directive in html
var d = new Date();
$scope.today = {
y: d.getFullYear(),
m: d.getMonth(),
d: d.getDate()
};
$scope.year = new Date().getFullYear();
$scope.currentmonth = new Date().getMonth();
function setSelectedDate() {
return moment().format("Do MMM YYYY");
}
$scope.setSelDate = setSelectedDate();
function getMonths() {
return moment.monthsShort();
}
$scope.months = getMonths();
function getWeeks() {
return moment.weekdaysMin();
}
$scope.weeks = getWeeks();
$scope.dateSelected = function($event, dt, month, year) {
$scope.dtsel = 'dsel';
$('.cc-dt').removeClass('dsel');
angular.element(event.target).addClass('dsel');
}
$scope.changeDate = function(el, dt, month, year) {
$scope.datesel = $scope.dateSelected(el, dt, month, year);
};
//$scope.datesel = $scope.dateSelected(null, moment().date(), moment().month(), moment().year());
$scope.monthSelector = function($event, month, year) {
// we'll use this to test in the ng-class also
$scope.month = (typeof month === 'number' ? month : $scope.months.indexOf(month));
if ($event === null) $event = null;
$('.cc-month').removeClass('msel');
angular.element(event.target).addClass('msel');
var dateCount = 1;
var dates = [];
// This block adds blanks to the beginning of the calendar
// Because you send in number (2) and string ('Mar') for
// month, we have to handle both cases.
var index = $scope.months.indexOf(month);
var dayOfWeek = (new Date(year, (index === -1 ? month : index), 1)).getDay();
while (dayOfWeek > 0) {
dates.push(' ');
dayOfWeek--;
}
var daysom = moment(year + "-" + month, "YYYY-MMM").daysInMonth();
while (dateCount <= daysom) {
dates.push(dateCount++);
}
return dates;
};
$scope.changeMonth = function(el, month, year) {
$scope.daysofmonth = $scope.monthSelector(el, month, year);
};
$scope.daysofmonth = $scope.monthSelector(null, moment().month(), moment().year());
});
.custom-calendar-wrapper {
width: 100%;
text-align: center;
border: 1px solid #ccc;
}
.cal-wrapper {
width: 240px;
margin: 0 auto;
text-align: center;
font-size: 13px;
font-family: arial;
}
.calender-container {
text-align: center;
}
.cc-header {
background: #E6E6E6;
}
.cc-year-header {
position: relative;
}
.cc-year-header-today {
position: absolute;
top: 5px;
right: 15px;
color: #0044cc;
font-size: 10px;
cursor: pointer;
}
.cc-year {
font-size: 15px;
line-height: 16px;
display: inline-block;
padding: 5px 8px;
color: #666;
}
.cc-month {
cursor: pointer;
padding: 3px 8px 2px 8px;
font-size: 10px;
text-transform: uppercase;
color: #666;
display: inline-block;
}
.cc-month:hover {
background-color: #e0e0e0;
}
.cc-month.msel,
.cc-month.current-month {
background-color: #666;
color: #eee;
}
.cc-nav {
display: inline-block;
color: #666;
cursor: pointer;
}
.cc-nav:hover {
color: #0044cc;
}
.selected-date {
font-size: 20px;
color: #666;
margin-bottom: 5px;
}
.cc-dates {
text-align: left;
}
.cc-week {
background: #D2D2D2;
}
.cc-week,
.cc-dates {
list-style: none;
padding: 0;
margin: 0;
}
.cc-week li {
padding: 2px 0;
}
.cc-week li,
.cc-dates li {
display: inline-block;
width: 33.233333px;
text-align: center;
border: 1px solid #ccc;
margin: 0 0 -1px -1px;
}
.cc-dates li {
border: 1px solid #ccc;
height: 40px;
white-space: pre;
}
.dsel {
background-color: #ddd;
}
.cc-today {
background-color: #F3B14E;
}
<link data-require="fontawesome@4.5.0" data-semver="4.5.0" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="http://momentjs.com/downloads/moment.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html lang="en" ng-app="customcal">
<head>
<meta charset="utf-8" />
<title>AngularJS Custom Calendar</title>
<link data-require="fontawesome@4.5.0" data-semver="4.5.0" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.css" />
<style>
label {
display: block;
}
</style>
</head>
<body>
<div class="cal-wrapper">
<div class="custom-calendar-wrapper" ng-controller="customCal">
<div class="selected-date" ng-bind="setSelDate"></div>
<div class="cc-header">
<div class="cc-year-header">
<span class="cc-nav-left cc-nav">
<i class="fa fa-chevron-left"></i>
</span>
<span class="cc-year" ng-bind="year"></span>
<span class="cc-nav-right cc-nav">
<i class="fa fa-chevron-right"></i>
</span>
<span class="cc-year-header-today">Today</span>
</div>
<div class="cc-month-header">
<span class="cc-month" ng-class="{ 'msel' : month == today.m }" ng-repeat="month in months track by $index" ng-bind="month" ng-click="changeMonth(this, month, year);"></span>
</div>
</div>
<ul class="cc-week">
<li ng-repeat="week in weeks" ng-bind="week"></li>
</ul>
<ul class="cc-dates">
<li class="cc-dt" ng-class="{ 'cc-today' : dt == today.d && month == today.m && year == today.y }" ng-click="changeDate(this, dt, month, year);" ng-repeat="dt in daysofmonth track by $index" ng-bind="dt"></li>
</ul>
</div>
</div>
</body>
</html>
你能帮我解决以下问题吗:
最佳答案
将您的 script.js 更改为:
$scope.monthSelector = function($event, month, year) {
if($event === null) $event = null;
$('.cc-month').removeClass('msel');
angular.element(event.target).addClass('msel');
var dateCount = 1;
var dates = [];
// This block adds blanks to the beginning of the calendar
// Because you send in number (2) and string ('Mar') for
// month, we have to handle both cases.
var index = $scope.months.indexOf(month);
var dayOfWeek = (new Date(year, (index === -1 ? month : index), 1)).getDay();
while(dayOfWeek > 0) {
dates.push(' ');
dayOfWeek--;
}
var daysom = moment(year+"-"+month, "YYYY-MMM").daysInMonth();
while (dateCount <= daysom) {
dates.push(dateCount++);
}
return dates;
};
在 css 中,改变这个:
.cc-dates li {
border: 1px solid #ccc;
height: 40px;
white-space: pre; // <<<< this is the only change in css
}
更新:更新答案以显示突出显示今天日期的代码
在 css 中添加:
.cc-today {
background-color: #F3B14E;
}
在 html 中更改为:
我们正在使用 ng-class="{ 'cc-today' : dt == today.d && month == today.m && year == today.y }" 来设置如果是今天的日期,则将单元格设置为不同的背景颜色。
在 script.js 中进行以下更改:
在 Controller 的开头:
// we'll use the today object to test in the ng-class directive in html
var d = new Date();
$scope.today = {
y: d.getFullYear(),
m: d.getMonth(),
d: d.getDate()
};
// use this instead of assigning to 2016,
// it works no matter which year we run this code
$scope.year = new Date().getFullYear();
在 $scope.monthSelector 函数中添加这个,不管在哪里:
// we'll use this to test in the ng-class also
$scope.month = (typeof month === 'number' ? month : $scope.months.indexOf(month));
对于所有的编辑,我深表歉意,但我没有 plunker 帐户。
关于javascript - Angularjs:想要在其各自的 "1st date"单元格上启动 "weekday",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36092077/
我完全被难住了- 使用 Weekday() vba 中的函数返回不正确的工作日,而在 Excel 中的工作表中使用它返回正确的工作日。指定或省略周开始参数似乎也没有任何区别。 系统时钟(我认为它用于“
我位于伦敦 GMT 时区。 如果我插入 Excel: =IF(OR(WEEKDAY(F20)=6;WEEKDAY(F20)=7);TRUE;FALSE) 我得到TRUE返回,这显然是错误的,因为它是我
我只需在周一执行该程序;所以我首先对 WEEKDAY() 进行测试,但有一个语法错误,我无法找出问题所在? CREATE DEFINER=`root`@`localhost` PROCEDURE `f
我的 MySQL 查询有问题,它按工作日对表中的数据进行分组。 我需要它来填写数据中缺失的工作日,例如下面 SQL 示例中的星期日(第 7 个工作日)。 SQL Fiddle MySQL 5.6 架构
class Event(models.Model): day = models.DateField(blank=True, null=True) period = models.Int
我遇到了将星期几字符串转换为 time.Weekday 值的问题。我找不到 time 包中内置的任何内容。 然后我编写了这个简单的函数(满足我的需求): var daysOfWeek = [...]s
Weekday 函数 返回代表一星期中某天的整数。 Weekday(date, [firstdayofweek]) 参数 date 可以代表日期的任意表达式。如果 date 参数中包含 N
我有以下数据框。这只是头部,日期跨度为 2 个月。我的问题是如何在数据框中创建一个具有两个级别“工作日”和“周末”的新因子变量,以指示给定日期是工作日还是周末? steps da
我试图理解两者,但我真的很困惑。网上说: MySQL 工作日() 返回给定日期一周中某天的索引(0 表示星期一,1 表示星期二,......6 表示星期日)。 MySQL DAYOFWEEK() 返回
如何获取本地语言的工作日和月份? 我的代码: library(lubridate) data <- c("10-02-2015", "11-03-2015") data.lubri <- dmy(da
我想解析脚本中的日期,我想知道是否有等效的: relativedelta(days=1, weekday=MO) 但是几个月了? 现在,我提取文本中的月份数字,并将其与文档的创建日期(和月份)进行比较
我正在尝试根据小组在工作日特定时间的可用性创建一个调度系统。团体可以在一周中的任何一天的任何时间提供服务。例如,A 组的开放时间为周一上午 2 点至上午 8 点、下午 1 点至晚上 11 点,周二..
我想要一个无需修改即可同时在 MySQL 和 Postgres 上运行的查询(我正在从 MySQL -> Postgres 迁移,理想情况下,我想在测试迁移时在两个数据库上运行完全相同的查询,而不是特
我相信答案是肯定的,但苹果的文档暗示答案是否定的。 Weekday units are the numbers 1 through n, where n is the number of days i
我使用 Stanford CoreNLP 处理英语 Gigaword 语料库的 NYT 部分。虽然它仍在进行中,但会多次记录以下消息: 未知变量:WEEKDAY 每次记录此消息时,内存消耗都会增加。现
我有一个工作日整数 (0,1,2...),我需要获取日期名称 ('Monday', 'Tuesday',...)。 是否有内置的 Python 函数或执行此操作的方法? 这是我编写的函数,它可以工作,
我想数一数约翰在蓝色房间里的时间,那是一个星期四。我玩过计数 和 工作日 并检查了文档。 我试过计数 有两个条件但得到错误或结果为 0。 最佳答案 正如@Gary'sStudent 在专栏中所说的那样
我将语言环境设置为 'ro',现在工作日使用罗马尼亚语。但是,我还设置了 week : { dow : 1 } 和 moment.weekdays() 返回从星期日开始的 'en' 中的天数。
我正在编写 Laravel 调度程序任务,并希望每个工作日(从星期一到星期五)每天运行一次。 我看到了 Task Scheduler有 ->weekdays()选项,大概就是我想要的。 但是我找不到此
在新的 C++20 header 有一个 std::chrono::weekday类型。为什么我不能比较 weekday与 operator看来, 没有 Wednesday不小于 Thursday
我是一名优秀的程序员,十分优秀!