我已经编写了一些代码来按类名显示/隐藏项目。我通过将vis-box的不透明度更改为0来实现此目的。但是,当我隐藏vis-box时,vis-dot和从时间线延伸的垂直线仍然显示。我也想隐藏这些。
Image of hidden boxes with lines showing
到目前为止,我已经能够通过将FolderView fview = new FolderView(1);
fview.setPropertySet(new PropertySet(FolderSchema.DisplayName,FolderSchema.Id));
Folder msgF = Folder.bind(service,WellKnownFolderName.MsgFolderRoot);
FindFoldersResults res = msgF.findFolders(new SearchFilter.ContainsSubstring(FolderSchema.DisplayName,"test"),fview);
List<Folder> fl = res.getFolders();
css属性更改为白色来隐藏整个时间轴的所有线条和点(使用chrome检查器)。但是我想只隐藏属于特定类的项目的点和线。
答案 0 :(得分:1)
一种解决方案是更改时间轴使用的数据集,根据需要删除和添加项目。
来自doc(http://visjs.org/docs/data/dataset.html):
dataset.add(data [,senderId]) - 将一个或多个项添加到DataSet。数据可以是单个项目,也可以是包含项目的数组。当已存在具有相同ID的项目时,添加项目将失败。该函数返回一个包含已添加项的ID的数组。请参阅数据操作部分。
remove(ids [,senderId]) - 按ID或项目本身删除一个或多个项目。返回包含已删除项的ID的数组。请参阅数据操作部分。
您只需要保留要隐藏/显示在变量中的项目列表。
答案 1 :(得分:0)
在我的情况下,为了隐藏项目,我将项目设置为每年隐藏一次,然后设置原始日期和时间以再次显示该项目。
当时间轴为可见范围设置了最小日期,并且无法超出该最小日期时,例如在我的情况下时间轴不能在一个月前移动时,这很有用。
然后代码可能是这样的:
function item_hide(id)
{
var item;
item= dataSet_items.get(id);
if(item === null)
return;
item.start= moment(item.start_original).subtract(1, 'y').format("YYYY-MM-DD HH:mm:ss");
item.end= moment(item.end_original).subtract(1, 'y').format("YYYY-MM-DD HH:mm:ss");
item.hidden= true;
dataSet_items.update(item);
return item;
}
function item_show(id)
{
var item;
item= dataSet_items.get(id);
if(item === null)
return;
item.start= item.start_original;
item.end= item.end_original;
item.hidden= false;
dataSet_items.update(item);
return item;
}